Введение
Это 3-я и окончательная роль в продолжении с моими предыдущими статьями на разработке разработчиков настроек цепочки инструментов на кластере Kubernetes. В этой статье я объяснил, как настроить Nexus на кластере Kubernetes.
Настройка Nexus на кластере Kubernetes
Nexus — это репозиторий артефакта, который играет важную роль в жизненном цикле разработки программного обеспечения, особенно в возрасте докеровских контейнеров. Я создал ниже список компонентов Kubernetes для размещения репозитория артефакта Nexus в кластере.
Класс хранения для Nexus
Я создал класс хранения для Nexus.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: nexus-storage-data
labels:
app: nexus-storage-data
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
zone: eu-west-2a
allowVolumeExpansion: true
Объем постоянства для Nexus
Я создал объем настойчивых для Nexus с пространством хранения 2 ГБ на кластере Kubernetes.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nexus-storage
labels:
app: nexus-storage
annotations:
volume.beta.kubernetes.io/storage-class: "nexus-storage-data"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
Развертывание для Nexus
Я создал сценарий развертывания, который тянет изображение Nexus, если он не присутствует в кластере Kubernetes и настроен на порт 8081. Я настроил группу пользователей для пользователя Nexus.
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: nexus
spec:
replicas: 1
template:
metadata:
name: nexus
labels:
app: nexus
spec:
securityContext:
fsGroup: 2000
containers:
- name: nexus
image: sonatype/nexus3:3.8.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8081
name: nexusport
volumeMounts:
- name: nexus-data
mountPath: /nexus-data
volumes:
- name: nexus-data
persistentVolumeClaim:
claimName: nexus-storage
Сервис для Nexus
Я создал сервис для Nexus на порту 8081
kind: Service
apiVersion: v1
metadata:
name: nexus
labels:
app: nexus-svc
spec:
type: NodePort
ports:
- port: 8081
targetPort: 8081
name: nexusport
selector:
app: nexus
type: LoadBalancer
К настоящему времени я создал класс хранения, постоянный том, развертывание и обслуживание для Nexus, и он работает и работает.
$kubectl get deployment $kubectl get pod $kubectl get svc
К настоящему времени все компоненты Kubernetes создаются для конвейера CI/CD, и его можно проверить, выполнив команду или с помощью приборной панели Kubernetes. В разделе «Ниже» я собираюсь использовать панель инструментов Kubernetes, чтобы проверить компоненты, которые я создал.
Компоненты кластера Kubernetes
Приборная панель Kubernetes с деталями компонентов, созданных в рамках этой настройки кластера, доступны ниже.
Постоянные тома
Ниже приведен скриншот, который содержит список постоянных объемов
Классы хранения — ниже — список классов хранения
Развертывание — ниже — список развертываний
Услуги — ниже — список услуг
Заключение
К настоящему времени я охватил весь инструмент CI/CD — Jenkins, Sonarqube с PostgreSQL и Nexus, созданный с одной репликой на кластере Kubernetes. Это может быть использовано для создания трубопровода DevOps на кластере Kubernetes.
Оригинал: «https://dev.to/sr_balaji/devops-tool-chain-setup-on-kubernetes-cluster-part—33-506»