Рубрики
Uncategorized

Развлеченные настройки цепи инструментов на кластере Kubernetes. Часть — 3/3

Введение Это 3-я и окончательная часть в продолжении с моими предыдущими статьями на … Теги с DevOps, Kubernetes.

Введение

Это 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»