AWS EKS Kubernetes и DockerHub - PullRequest
       25

AWS EKS Kubernetes и DockerHub

3 голосов
/ 11 июля 2020

У меня кластер и нода создается в AWS EKS. Я применил развертывание к этому кластеру, как указано в разделе

kubectl apply -f deployment.yaml

, где deployment.yaml содержит спецификацию контейнеров вместе с репозиторием DockerHub и изображением

Однако я допустил ошибку в deployment.yaml и Мне нужно повторно применить его к конфигурации

Мой вопрос:

1 - Как повторно применить deployment.yaml к кластеру AWS EKS с помощью kubectl? Просто выполнение указанной выше команды не работает (kubectl apply -f deployment.yaml)

2- После повторного применения файла deployment.yaml узел go получит образ DockerHub или мне все еще нужно сделайте что-нибудь еще (предположим, что все остальные детали в порядке)

Некоторые результаты ниже:

>> kubectl get pods

my-app-786dc95d8f-b6w4h   0/1     ImagePullBackOff   0          9h
my-app-786dc95d8f-w8hkg   0/1     ImagePullBackOff   0          9h
kubectl describe pod my-app-786dc95d8f-b6w4h                                                                            
Name:         my-app-786dc95d8f-b6w4h
Namespace:    default
Priority:     0
Node:         ip-192-168-24-13.ec2.internal/192.168.24.13
Start Time:   Fri, 10 Jul 2020 12:54:38 -0400
Labels:       app=my-app
              pod-template-hash=786dc95d8f
Annotations:  kubernetes.io/psp: eks.privileged
Status:       Pending
IP:           192.168.7.235
IPs:
  IP:           192.168.7.235
Controlled By:  ReplicaSet/my-app-786dc95d8f
Containers:
  simple-node:
    Container ID:
    Image:          BAD_REPO/simple-node
    Image ID:
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-mwwvl (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-mwwvl:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-mwwvl
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason   Age                    From                                    Message
  ----     ------   ----                   ----                                    -------
  Normal   BackOff  17m (x2570 over 9h)    kubelet, ip-192-168-24-13.ec2.internal  Back-off pulling image "BAD_REPO/simple-node"
  Warning  Failed   2m48s (x2634 over 9h)  kubelet, ip-192-168-24-13.ec2.internal  Error: ImagePullBackOff

BR

Ответы [ 2 ]

5 голосов
/ 11 июля 2020

, если вам нужно изменить изображение:

kubectl set image deployment.v1.apps/{your_deployment_name} image_name:tag

, но вы всегда можете сделать

kubectl delete -f deployment.yaml
kubectl create -f deployment.yaml

, так как ваше изображение находится в ImagePullBackOff - это все равно не работает, и вы можно просто воссоздать развертывание. Обычно вы не делаете drop / create на прод. вот почему я все время использую смену изображения. просто нужно менять тег на каждом новом изображении.

3 голосов
/ 11 июля 2020

ImagePullBackOff означает, что kubernetes не может получить изображение.

В частности, учетная запись службы "по умолчанию" не может извлекать изображение.

Чтобы исправить эту проблему, вам потребуется две проверки:

  • Убедитесь, что у вас нет опечаток в имени и теге изображения. И этот образ доступен публично.
  • Если реестр Docker является частным, обязательно создайте секрет с типом dockerlogin, а затем исправьте служебную учетную запись «по умолчанию» этим секретом.
...