У меня очень странная ситуация. Я обновляю образ развертывания (у моего образа есть тег 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
}
}