Введение
Это 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»