Puncte:1

Cum se remediază erorile ContainerCreating în timpul implementării metallb?

drapel ke

Pentru testare, am instalat ubuntu 21 pe serverul vmware esxi. Pe acea mașină, a învârtit kubernet-uri folosind containere lxc după aceasta repertoriu LXC este rotit și funcționează.

adminuser@testing:~/Desktop$ lista lxc
+----------+---------+-------------------+-------- --------------------------------------+----------- -+-----------+
| NUME | STAT | IPV4 | IPV6 | TIP | INstantanee |
+----------+---------+-------------------+-------- --------------------------------------+----------- -+-----------+
| kmmaster | ALLERARE | 10.8.0.217 (eth0) | fd42:666f:471d:3d53:216:3eff:fe54:dce6 (eth0) | CONTAINER | 0 |
+----------+---------+-------------------+-------- --------------------------------------+----------- -+-----------+
| kworker1 | ALLERARE | 10.8.0.91 (eth0) | fd42:666f:471d:3d53:216:3eff:fee4:480e (eth0) | CONTAINER | 0 |
+----------+---------+-------------------+-------- --------------------------------------+----------- -+-----------+
| kworker2 | ALLERARE | 10.8.0.124 (eth0) | fd42:666f:471d:3d53:216:3eff:fede:3c9d (eth0) | CONTAINER | 0 |
+----------+---------+---------------

Apoi a început implementarea metallb pe acest cluster utilizând pașii menționați în aceasta legătură. Și a aplicat această configurație pentru rutare. GNU nano 4.8 k8s-metallb-configmap.yaml

apiVersion: v1
fel: ConfigMap
metadate:
  spatiu de nume: metallb-system
  nume: config
date:
  config: |
    pool-uri de adrese:
    - nume: implicit
      protocol: layer2
      adrese:
      - 10.8.0.240-10.8.0.250

Dar podurile metalb nu funcționează.

kubectl obține pods -n metallb-system
STAREA NUMELE GATA REINCEPE VARSTA
controller-6b78bff7d9-cxf2z 0/1 ContainerCreating 0 38m
speaker-fpvjt 0/1 CreateContainerConfigError 0 38m
difuzor-mbz7b 0/1 CreateContainerConfigError 0 38m
speaker-zgz4d 0/1 CreateContainerConfigError 0 38m

Am verificat jurnalele.

kubectl descrie pod controller-6b78bff7d9-cxf2z -n metallb-system
Nume: controller-6b78bff7d9-cxf2z
Spațiu de nume: metallb-system
Prioritate: 0
Nod: kworker1/10.8.0.91
Ora de începere: miercuri, 14 iulie 2021 20:52:10 +0530
Etichete: app=metallb
                component=controller
                pod-template-hash=6b78bff7d9
Adnotări: prometheus.io/port: 7472
                prometheus.io/scrape: adevărat
Stare: în așteptare
IP:             
IP-uri: <niciunul>
Controlat de: ReplicaSet/controller-6b78bff7d9
Containere:
  controlor:
    ID container:  
    Imagine: quay.io/metallb/controller:v0.10.2
    ID imagine:      
    Port: 7472/TCP
    Port gazdă: 0/TCP
    Argumente:
      --port=7472
      --config=config
    Stare: În așteptare
      Motiv: ContainerCreating
    Gata: Fals
    Număr de reporniri: 0
    Mediu inconjurator:
      METALLB_ML_SECRET_NAME: lista de membri
      METALLB_DEPLOYMENT: controler
    Suporturi:
      /var/run/secrets/kubernetes.io/serviceaccount de la kube-api-access-j76kg (ro)
Conditii:
  Tastați Stare
  Adevărat inițializat 
  Gata Fals 
  ContainersReady False 
  PodScheduled Adevărat 
Volume:
  kube-api-access-j76kg:
    Tip: Proiectat (un volum care conține date injectate din mai multe surse)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional: <nil>
    DownwardAPI: adevărat
Clasa QoS: BestEffort
Node-Selectors: kubernetes.io/os=linux
Tolerări: node.kubernetes.io/not-ready:NoExecute op=Există pentru 300 de secunde
                             node.kubernetes.io/unreachable:NoExecute op=Există timp de 300 de secunde
Evenimente:
  Introduceți Motivul Vârsta din mesaj
  ---- ------ ---- ---- -------
  Planificator implicit de 32 m programat normal Alocat cu succes metallb-system/controller-6b78bff7d9-cxf2z către kworker1
  Avertisment FailedCreatePodSandBox 32m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = necunoscut desc = eșuat la setarea rețelei pentru sandbox "a8a6fa54086b9e65c42c8a0478dcac0769e8b278eafed9ad900478dcac0769e8b278eafed9d9000000: open directory
  Avertisment FailedCreatePodSandBox 31m kubelet Nu s-a putut crea pod sandbox: eroare rpc: code = Unknown desc = eșuat la configurarea rețelei pentru sandbox "264ee423734139b712395c0570c888cff0b7b526e5b7db526e5b7drnb526e5b7drnn.
  Avertisment FailedCreatePodSandBox 31m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = necunoscut desc = eșuat la configurarea rețelei pentru sandbox "1a3cb9e20a2a015adc7b4924ed21e0b50604ee9f9faeff04004000000000000000:00:00:00:00"
  Avertisment FailedCreatePodSandBox 31m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = Unknown desc = eșuat la setarea rețelei pentru sandbox "56dd906cdadc8ef50db3cc725d988090539a0818c257971340539a0818c257971340539a0818c2579713480:" file open directory
  Avertisment FailedCreatePodSandBox 31m kubelet Nu s-a putut crea pod sandbox: eroare rpc: code = Unknown desc = eșuat la setarea rețelei pentru sandbox "8ddcfa704da9867c3a68030f0dc59f7c0d04bdc3a0b598c3a0b5918c3a0b598c3a0b598c3a0b598c3a0b598bdc3a0b598bdc3a0b598bdc3a0b598bdc3a0b598bdc3a0b598bdc3a0b0d0d04bdc3a0b598bdc
  Avertisment FailedCreatePodSandBox 30m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = necunoscut desc = eșuat la setarea rețelei pentru sandbox "50431bbc89188799562c48847be90e243bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bbf49a2c543bf49a2c543bf49a2c543bf49a2c543bf49
  Avertisment FailedCreatePodSandBox 30m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = necunoscut desc = eșuat la configurarea rețelei pentru sandbox "da9ad1d418d3aded668c53f5e3f98ddfac14af638ed7e8142b7a909:v
  Avertisment FailedCreatePodSandBox 30m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = necunoscut desc = eșuat la setarea rețelei pentru sandbox "4dc6109c696ee410c58a0894ac70e5165a56bab99465a56bab99468:30099999468:3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:
  Avertisment FailedCreatePodSandBox 30m kubelet Nu s-a putut crea pod sandbox: eroare rpc: cod = Unknown desc = eșuat la configurarea rețelei pentru sandbox "a8f1cad2ce9f8c278c07c924106a1b6b321a801245048:0012450473012450473"
  Avertisment FailedCreatePodSandBox 2m (x131 peste 29m) kubelet (combinat din evenimente similare): Nu s-a putut crea pod sandbox: eroare rpc: cod = Desc necunoscut = nu s-a putut configura rețeaua pentru sandbox „f5e93b893275afe5309edddecfe16861:b090916861:b090916861:b090916861: Nu există un astfel de fișier sau director

Și containerul difuzorului.

kubectl descrie pod speaker-zgz4d -n metallb-system
Nume: difuzor-zgz4d
Spațiu de nume: metallb-system
Prioritate: 0
Nod: kmaster/10.8.0.217
Ora de începere: miercuri, 14 iulie 2021 20:52:10 +0530
Etichete: app=metallb
              component=difuzor
              controller-revision-hash=7668c5cdf6
              pod-template-generation=1
Adnotări: prometheus.io/port: 7472
              prometheus.io/scrape: adevărat
Stare: în așteptare
IP: 10.8.0.217
IP-uri:
  IP: 10.8.0.217
Controlat de: DaemonSet/difuzor
Containere:
  vorbitor:
    ID container:  
    Imagine: quay.io/metallb/speaker:v0.10.2
    ID imagine:      
    Porturi: 7472/TCP, 7946/TCP, 7946/UDP
    Porturi gazdă: 7472/TCP, 7946/TCP, 7946/UDP
    Argumente:
      --port=7472
      --config=config
    Stare: În așteptare
      Motiv: CreateContainerConfigError
    Gata: Fals
    Număr de reporniri: 0
    Mediu inconjurator:
      METALLB_NODE_NAME: (v1:spec.nodeName)
      METALLB_HOST: (v1:status.hostIP)
      METALLB_ML_BIND_ADDR: (v1:status.podIP)
      METALLB_ML_LABELS: app=metallb,component=difuzor
      METALLB_ML_SECRET_KEY: <setată la cheia „secretkey” în „memberlist” secretă> Opțional: fals
    Suporturi:
      /var/run/secrets/kubernetes.io/serviceaccount de la kube-api-access-l2gzm (ro)
Conditii:
  Tastați Stare
  Adevărat inițializat 
  Gata Fals 
  ContainersReady False 
  PodScheduled Adevărat 
Volume:
  kube-api-access-l2gzm:
    Tip: Proiectat (un volum care conține date injectate din mai multe surse)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional: <nil>
    DownwardAPI: adevărat
Clasa QoS: BestEffort
Node-Selectors: kubernetes.io/os=linux
Tolerări: node-role.kubernetes.io/master:NoSchedule op=Exists
                             node.kubernetes.io/disk-pressure:NoSchedule op=Există
                             node.kubernetes.io/memory-pressure:NoSchedule op=Există
                             node.kubernetes.io/network-unavailable:NoSchedule op=Există
                             node.kubernetes.io/not-ready:NoExecute op=Există
                             node.kubernetes.io/pid-pressure:NoSchedule op=Există
                             node.kubernetes.io/unreachable:NoExecute op=Există
                             node.kubernetes.io/unschedulable:NoSchedule op=Există
Evenimente:
  Introduceți Motivul Vârsta din mesaj
  ---- ------ ---- ---- -------
  Normal programat 41m programator implicit Alocat cu succes metallb-system/speaker-zgz4d lui kmaster
  Avertisment FailedMount 41m kubelet MountVolume.SetUp a eșuat pentru volumul „kube-api-access-l2gzm”: nu s-a putut sincroniza cache-ul configurației: a expirat în așteptarea condiției
  Avertisment eșuat 39 m (x12 peste 41 m) eroare kubelet: „listă de membri” secretă nu a fost găsită
  Normal Pulled 78s (x185 peste 41m) Kubelet Imaginea containerului „quay.io/metallb/speaker:v0.10.2” deja prezentă pe mașină

starea containerului după setarea valorii de la null la 0.

kube-apiserver-kmaster 1/1 Alergare 0 27m
kube-controller-manager-kmaster 1/1 Alergare 0 27m
kube-flannel-ds-7f5b7 0/1 CrashLoopBackOff 1 76s
kube-flannel-ds-bs9h5 0/1 Eroare 1 72s
kube-flannel-ds-t9rpf 0/1 Eroare 1 71s
kube-proxy-ht5fk 0/1 CrashLoopBackOff 3 76s
kube-proxy-ldhhc 0/1 CrashLoopBackOff 3 75s
kube-proxy-mwrkc 0/1 CrashLoopBackOff 3 76s
kube-scheduler-kmaster 1/1 Running 0 2
p10l avatar
drapel us
Ai instalat supliment de rețea? Daca da care? Eroare `deschide /run/flannel/subnet.env: niciun astfel de fișier sau director` indică că ar trebui să instalați [flannel](https://github.com/flannel-io/flannel)
uday avatar
drapel ke
Am urmat asta, https://github.com/justmeandopensource/kubernetes/tree/master/lxd-provisioning. Conține comanda flanel. ați putea încerca și să verificați, problema vine în mașina esxi ubuntu, containerele lxd
p10l avatar
drapel us
Corect, am ratat cumva asta. Care este rezultatul `kubectl get nodes` după executarea în nodul principal? (`lxc exec kmaster bash`)
p10l avatar
drapel us
De asemenea, dacă ați putea include ieșirea lui `kubectl get pods -n kube-system`. Este posibil să se prăbușească păstăile de flanel.
uday avatar
drapel ke
lxc exec kmaster bash -- deschide shell-ul bash al kmaster-ului. Asta funcționează
Puncte:0
drapel br

Am rezolvat-o creând manual cheia secretă corectă numită lista membrilor în loc de metalb-membru după cum urmează:

kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
Puncte:0
drapel us

I don't have access to VMWare toolset, but I tried to replicate your setup as closely as possible.

In my case the kube-proxy-* and kube-flannel-ds-* pods were in CrashLoopBackOff status. Failing with

1 main.go:251] Failed to create SubnetManager: error retrieving pod spec for 'kube-system/kube-flannel-ds-7tg89': Get "https://10.96.0.1:443/api/v1/namespaces/kube-system/pods/kube-flannel-ds-7tg89": dial tcp 10.96.0.1:443: i/o timeout
1 server.go:489] open /proc/sys/net/netfilter/nf_conntrack_max: permission denied

This prevented metallb pods from starting.


To make it work I edited kube-proxy configMap

# kubectl edit configmap/kube-proxy -n kube-system

and changed

maxPerCore: null

to

maxPerCore: 0

Then deleted all kube-proxy and kube-flannel-ds pods, which were immedietly recreated by DaemonSet.

# kubectl get pods -n kube-system
NAME                              READY   STATUS    RESTARTS   AGE
coredns-558bd4d5db-h5qsh          1/1     Running   0          49m
coredns-558bd4d5db-m86w5          1/1     Running   0          49m
etcd-kmaster                      1/1     Running   0          49m
kube-apiserver-kmaster            1/1     Running   0          49m
kube-controller-manager-kmaster   1/1     Running   0          49m
kube-flannel-ds-87pnx             1/1     Running   0          11m
kube-flannel-ds-jmjtc             1/1     Running   0          11m
kube-flannel-ds-rxbdm             1/1     Running   0          11m
kube-proxy-dcvjs                  1/1     Running   0          12m
kube-proxy-h628j                  1/1     Running   0          12m
kube-proxy-w8jxn                  1/1     Running   0          12m
kube-scheduler-kmaster            1/1     Running   0          49m

Then deleted all metallb pods, which were also recreated by DeamonSet

root@kmaster:~# kubectl get pods -n metallb-system
NAME                          READY   STATUS    RESTARTS   AGE
controller-6b78bff7d9-btwlr   1/1     Running   0          12m
speaker-kr8lv                 1/1     Running   0          12m
speaker-sqk4d                 1/1     Running   0          12m
speaker-wm5r8                 1/1     Running   0          12m

Seems now everything works.


I also created /run/flannel/subnet.env file manually, with contents:

FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

but it may not be necessary

uday avatar
drapel ke
Am făcut cum ați sugerat, dar totuși containerele de flanel se prăbușesc. Dacă esxi nu este disponibil, ați putea încerca și pe stația de lucru vmware, cred.
uday avatar
drapel ke
kube-flannel-ds-7f5b7 0/1 CrashLoopBackOff 1 76s kube-flannel-ds-bs9h5 0/1 Eroare 1 72s kube-flannel-ds-t9rpf 0/1 Eroare 1 71s kube-proxy-ht5fk 0/1 CrashLoopBackOff 3 76s kube-proxy-ldhhc 0/1 CrashLoopBackOff 3 75s kube-proxy-mwrkc 0/1 CrashLoopBackOff 3 76s kube-scheduler-kmaster 1/1 Running 0 2
p10l avatar
drapel us
Hm, vă rugăm să includeți rezultatul „jurnalelor kubectl” ale acelor poduri în postarea dumneavoastră originală.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.