Почему пул узлов на основе gvisor может не загрузиться должным образом?

Я пытаюсь подготовить новый пул узлов, используя изолированную программную среду gvisor в GKE. Я использую веб-консоль GCP для добавления нового пула узлов, использую cos_containerdОС и установите флажок Включить изолированную программную среду gvisor, но подготовка пула узлов каждый раз завершается ошибкой с сообщением "Неизвестная ошибка" в уведомлениях консоли GCP. Узлы никогда не присоединяются к кластеру K8S.

Кажется, что виртуальная машина GCE загружается нормально, и когда я смотрю в journalctl для узла я вижу, что cloud-initкажется, все закончилось нормально, но кубелет не запускается. Я вижу такие сообщения об ошибках:

Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.184163    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.284735    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.385229    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.485626    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.522961    1143 eviction_manager.go:251] eviction manager: failed to get summary stats: failed to get node info: node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz containerd[976]: time="2020-10-12T16:58:07.576735750Z" level=error msg="Failed to load cni configuration" error="cni config load failed: no network config found in /etc/cni/net.d: cni plugin not initialized: failed to load cni config"
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.577353    1143 kubelet.go:2191] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.587824    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:07 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:07.989869    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:08 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:08.090287    1143 
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:09.296365    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:09.396933    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz node-problem-detector[1166]: F1012 16:58:09.449446    2481 main.go:71] cannot create certificate signing request: Post https://172.17.0.2/apis/certificates.k8s.io/v1beta1/certificatesigningrequests?timeout=5m0s: dial tcp 172.17.0.2:443: connect: no route 
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz node-problem-detector[1166]: E1012 16:58:09.450695    1166 manager.go:162] failed to update node conditions: Patch https://172.17.0.2/api/v1/nodes/gke-main-sanboxes-dd9b8d84-dmzz/status: getting credentials: exec: exit status 1
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:09.453825    2486 cache.go:125] failed reading existing private key: open /var/lib/kubelet/pki/kubelet-client.key: no such file or directory
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:09.543449    1143 kubelet.go:2271] node "gke-main-sanboxes-dd9b8d84-dmzz" not found
Oct 12 16:58:09 gke-main-sanboxes-dd9b8d84-dmzz kubelet[1143]: E1012 16:58:09.556623    2486 tpm.go:124] failed reading AIK cert: tpm2.NVRead(AIK cert): decoding NV_ReadPublic response: handle 1, error code 0xb : the handle is not correct for the use

Я не совсем уверен, что может быть причиной этого, и я бы действительно хотел иметь возможность использовать автомасштабирование с этим пулом узлов, поэтому я не хочу просто исправлять его вручную для этого узла и должен делать это для любого нового узлы, которые присоединяются. Как я могу настроить пул узлов так, чтобы узлы на основе gvisor предоставлялись самостоятельно?

Детали моего кластера:

  • Версия ГКЭ: 1.17.9-гке.6300
  • Тип кластера: Региональный
  • VPC-native
  • Частный кластер
  • Экранированные узлы GKE

1 ответ

Вы можете сообщить о проблемах с продуктами Google, перейдя по ссылке ниже:

Вам нужно будет выбрать: Create new Google Kubernetes Engine issue под Compute раздел.


Я могу подтвердить, что столкнулся с той же проблемой при создании кластера, как описано в вопросе (частный, экранированный и т. Д.):

  • Создайте кластер с одним пулом узлов.
  • Добавьте пул узлов с помощью gvisor включен после успешного создания кластера.

Создание кластера, как указано выше, подтолкнет GKE кластер в RECONCILING штат:

NAME        LOCATION      MASTER_VERSION   MASTER_IP       MACHINE_TYPE  NODE_VERSION     NUM_NODES  STATUS
gke-gvisor  europe-west3  1.17.9-gke.6300  XX.XXX.XXX.XXX  e2-medium     1.17.9-gke.6300  6          RECONCILING

Изменения в состоянии кластера:

  • Provisoning - создание кластера
  • Running - создал кластер
  • Reconciling - добавлен пул узлов
  • Running - добавлен пул узлов (примерно на минуту)
  • Reconciling - кластер перешел в это состояние примерно на 25 минут

Отчеты GCP Cloud Console (веб-интерфейс): Repairing Cluster

Другие вопросы по тегам