плагин kubernetes для развертывания в Jenkins не обновляет модуль - PullRequest
0 голосов
/ 22 марта 2020

Я использую плагин kubernetes-cd в Jenkins (https://plugins.jenkins.io/kubernetes-cd/) для успешного развертывания моего приложения.

enter image description here

Но У меня возникла проблема, когда я снова запускаю задание, jenkins не обновляет мой модуль (не удаляет и не создает новый модуль снова), поэтому на мои изменения кода это не влияет. И после того, как я удалил руководство по модулю pod с помощью команд kubectl в кластере kubernetes и перезапустил задание, оно внесло изменения

Ниже приведен мой файл yaml. Вы знаете, как это исправить?

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tds-upload
  name: tds-upload
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tds-upload
  template:
    metadata:
      labels:
        app: tds-upload
    spec:
      containers:
      - image: dev-master:5000/tds-upload:1.0.0
        imagePullPolicy: Always
        name: tds-upload

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tds-upload
  name: tds-upload
spec:
  ports:
  - nodePort: 31313
    port: 8889
    protocol: TCP
    targetPort: 8889
  selector:
    app: tds-upload
  type: NodePort

1 Ответ

1 голос
/ 22 марта 2020

Существуют различные способы заставить Kubernetes развертывать новые изменения.

  1. kubectl rollout restart deployment myapp

Это текущий способ запуска скользящего обновления и выхода из старой реплики. устанавливается для других операций, предоставляемых при развертывании kubectl, таких как откаты

kubectl patch deployment my-deployment -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"build\":\"$CI_COMMIT_SHORT_SHA\"}}}}}}"

Где вы можете использовать любое имя и любое значение для метки, если она меняется с каждой сборкой.

Вы можете использовать kubectl Cli плагин Дженкинса для выполнения вышеуказанных команд.

...