В модулях развертывания отображается правильное изображение, но в некоторых из них используется старый код - PullRequest
0 голосов
/ 26 апреля 2020

У меня очень странная ситуация. Я обновляю образ развертывания (у моего образа есть тег sha, поэтому они каждый раз отличаются). Развертывание также является скользящим, с maxSurge 1 и maxUnavailable равным 1. У меня есть 2 модуля в развертывании.

Развертывание выглядит нормально, образ успешно обновлен и показывает правильную версию. Однако, когда я sh в стручках, кажется, что запускается какой-то старый код, а другой запускает последний код изображения (следовательно, один раз фактически выполняется код из правильного изображения, в то время как один запускает код, который не соответствует к изображению это информация.

Если я удаляю модули и позволяю кубу воссоздавать их, они кажутся нормальными.

Как это вообще может произойти? фактическое содержимое модуля было как-то иначе? - Может быть, Кубе каким-то образом извлекает что-то из какого-то кэша и обновляет мой модуль во время выполнения? - Что может вызвать такую ​​ситуацию? Спасибо!

{
  "kind": "Deployment",
  "apiVersion": "extensions/v1beta1",
  "metadata": {
    "name": "appname-service",
    "namespace": "appname",
    "selfLink": "/apis/extensions/v1beta1/namespaces/appname/deployments/appname-service",
    "uid": "2f04120d-2e2a-11e9-a809-024a2f6e2e6a",
    "resourceVersion": "186340891",
    "generation": 19,
    "creationTimestamp": "2019-02-11T18:23:52Z",
    "labels": {
      "app": "appname-service"
    },
    "annotations": {
      "deployment.kubernetes.io/revision": "23",
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"extensions/v1beta1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"appname-service\"},\"name\":\"appname-service\",\"namespace\":\"appname\"},\"spec\":{\"replicas\":2,\"selector\":{\"matchLabels\":{\"app\":\"appname-service\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"appname-service\"}},\"spec\":{\"containers\":[{\"command\":[\"gunicorn\",\"--workers\",\"1\",\"--bind\",\":8000\",\"--log-level\",\"INFO\",\"appname.wsgi:application\"],\"env\":[{\"name\":\"ORG_ENVIRONMENT\",\"value\":\"prod-kubernetes\"},{\"name\":\"ORG_SERVICE\",\"value\":\"appname\"}],\"image\":\"91340XXXXXX.dkr.ecr.us-east-2.amazonaws.com/app-name:app-name-65c80f7e50daa9a10fe2a7c0873b6a01e232ee37\",\"imagePullPolicy\":\"Always\",\"name\":\"appname-service\",\"ports\":[{\"containerPort\":8000,\"protocol\":\"TCP\"}]}]}}}}\n",
      "kubernetes.io/change-cause": "kubectl set image deployment/appname-service appname-service=oldappname-7cd8a731d98ffb61c2b16f33bbea30dff5fe0f15 --namespace=funnel --record=true"
    }
  },
  "spec": {
    "replicas": 2,
    "selector": {
      "matchLabels": {
        "app": "appname-service"
      }
    },
    "template": {
      "metadata": {
        "creationTimestamp": null,
        "labels": {
          "app": "appname-service"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "funnel-service",
            "image": "913404XXXXX.dkr.ecr.us-west-2.amazonaws.com/appname:appname-e01822ceb5804b6693c19a3c032ac0a072b658c1",
            "command": [
              "gunicorn",
              "--workers",
              "1",
              "--bind",
              ":8000",
              "--log-level",
              "INFO",
              "appname.wsgi:application"
            ],
            "ports": [
              {
                "containerPort": 8000,
                "protocol": "TCP"
              }
            ],
            "env": [
              {
                "name": "ORG_ENVIRONMENT",
                "value": "prod-kubernetes"
              },
              {
                "name": "ORG_SERVICE",
                "value": "appname"
              }
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "Always"
          }
        ],
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "schedulerName": "default-scheduler"
      }
    },
    "strategy": {
      "type": "RollingUpdate",
      "rollingUpdate": {
        "maxUnavailable": 1,
        "maxSurge": 1
      }
    },
    "revisionHistoryLimit": 10,
    "progressDeadlineSeconds": 600
  },
  "status": {
    "observedGeneration": 19,
    "replicas": 2,
    "updatedReplicas": 2,
    "readyReplicas": 2,
    "availableReplicas": 2,
    "conditions": [
      {
        "type": "Available",
        "status": "True",
        "lastUpdateTime": "2020-04-25T21:16:47Z",
        "lastTransitionTime": "2020-04-25T21:16:47Z",
        "reason": "MinimumReplicasAvailable",
        "message": "Deployment has minimum availability."
      },
      {
        "type": "Progressing",
        "status": "True",
        "lastUpdateTime": "2020-04-25T21:17:09Z",
        "lastTransitionTime": "2020-03-10T08:17:58Z",
        "reason": "NewReplicaSetAvailable",
        "message": "ReplicaSet \"appname-service-5bc8c5ddfc\" has successfully progressed."
      }
    ],
    "collisionCount": 4
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...