Am instalat un cluster k8s 1.23.3 pe patru sisteme de operare raspberrypi raspberrypi 11 (bullseye) braț64; mai ales prin urmare acest ghid.
Esența este că planul de control a fost creat folosind această comandă
kubeadm init --token={some_token} --kubernetes-version=v1.23.3 --pod-network-cidr=10.1.0.0/16 --service-cidr=10.11.0.0/16 --control-plane-endpoint= 10.0.4.16 --node-name=rpi-1-1
Apoi mi-am creat propriul meu kube-verify
namespace, puneți o implementare a echo-server în el și a creat un serviciu pentru el.
In orice caz, Nu pot ajunge la IP-ul cluster al serviciului de la niciunul dintre noduri. De ce? Solicitările pur și simplu expiră, în timp ce solicitările către IP-ul cluster al podului funcționează bine.
Bănuiesc că al meu kube-proxy
nu funcționează așa cum ar trebui. Mai jos este ceea ce am investigat până acum.
$ kubectl obține servicii -n kube-verify -o=wide
NUME TIP CLUSTER-IP EXTERN-IP PORT(E) SELECTOR DE VÂRSTE
echo-server ClusterIP 10.11.213.180 <niciunul> 8080/TCP 24h app=echo-server
$ kubectl obține pods -n kube-system -o=wide
NUME PREGĂTIT STAREA RESTARTE Vârsta IP NODE NOMINAT NODUL GATES DE PREGĂTIRE
coredns-64897985d-47gpr 1/1 Alergare 1 (acum 69 m) 41 h 10.1.0.5 rpi-1-1 <niciunul> <niciunul>
coredns-64897985d-nf55w 1/1 Alergare 1 (acum 69 m) 41 ore 10.1.0.4 rpi-1-1 <niciunul> <niciunul>
etcd-rpi-1-1 1/1 Alergare 2 (acum 69 m) 41 h 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
kube-apiserver-rpi-1-1 1/1 Alergare 2 (acum 69 m) 41 h 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
kube-controller-manager-rpi-1-1 1/1 Alergare 2 (acum 69 m) 41 ore 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
kube-flannel-ds-5467m 1/1 Alergare 1 (acum 69 m) 28h 10.0.4.17 rpi-1-2 <niciunul> <niciunul>
kube-flannel-ds-7wpvz 1/1 Alergare 1 (acum 69 m) 28 ore 10.0.4.18 rpi-1-3 <niciunul> <niciunul>
kube-flannel-ds-9chxk 1/1 Alergare 1 (acum 69 m) 28 ore 10.0.4.19 rpi-1-4 <niciunul> <niciunul>
kube-flannel-ds-x5rvx 1/1 Alergare 1 (acum 69 m) 29 ore 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
kube-proxy-8bbjn 1/1 Alergare 1 (acum 69 m) 28 ore 10.0.4.17 rpi-1-2 <niciunul> <niciunul>
kube-proxy-dw45d 1/1 Running 1 (acum 69m) 28h 10.0.4.18 rpi-1-3 <niciunul> <niciunul>
kube-proxy-gkkxq 1/1 Alergare 2 (acum 69 m) 41 h 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
kube-proxy-ntl5w 1/1 Running 1 (acum 69 m) 28h 10.0.4.19 rpi-1-4 <niciunul> <niciunul>
kube-scheduler-rpi-1-1 1/1 Alergare 2 (acum 69 m) 41 ore 10.0.4.16 rpi-1-1 <niciunul> <niciunul>
$ kubectl înregistrează kube-proxy-gkkxq -n kube-system
I0220 13:52:02.281289 1 node.go:163] IP nod preluat cu succes: 10.0.4.16
I0220 13:52:02.281535 1 server_others.go:138] „Adresă IP nod detectat”="10.0.4.16"
I0220 13:52:02.281610 1 server_others.go:561] „Mod proxy necunoscut, presupunând proxy iptables” proxyMode=""
I0220 13:52:02.604880 1 server_others.go:206] „Utilizarea iptables Proxier”
I0220 13:52:02.604966 1 server_others.go:213] „kube-proxy rulează în modul dual-stack” ipFamily=IPv4
I0220 13:52:02.605026 1 server_others.go:214] „Se creează dualStackProxier pentru iptables”
I0220 13:52:02.605151 1 server_others.go:491] „Detect-local-mode set to ClusterCIDR, but no IPv6 cluster CIDR defined, , default to no-op detect-local for IPv6”
I0220 13:52:02.606905 1 server.go:656] „Informații despre versiune” version="v1.23.3"
W0220 13:52:02.614777 1 sysinfo.go:203] Topologia nodurilor nu este disponibilă, oferind topologia CPU
I0220 13:52:02.619535 1 conntrack.go:52] „Setarea nf_conntrack_max” nf_conntrack_max=131072
I0220 13:52:02.620869 1 conntrack.go:100] „Set sysctl” entry="net/netfilter/nf_conntrack_tcp_timeout_close_wait" value=3600
I0220 13:52:02.660947 1 config.go:317] „Se pornește controlerul de configurare a serviciului”
I0220 13:52:02.661015 1 shared_informer.go:240] Se așteaptă sincronizarea cache-urilor pentru configurarea serviciului
I0220 13:52:02.662669 1 config.go:226] „Se pornește controlerul de configurare a segmentului final”
I0220 13:52:02.662726 1 shared_informer.go:240] Se așteaptă sincronizarea cache-urilor pentru configurarea secțiunii punctului final
I0220 13:52:02.762734 1 shared_informer.go:247] Cache-urile sunt sincronizate pentru configurarea serviciului
I0220 13:52:02.762834 1 shared_informer.go:247] Cache-urile sunt sincronizate pentru configurarea segmentelor de punct final
Ceea ce observ aici este că Topologia nodurilor nu este disponibilă
, așa că am mai săpat în configurația kube-proxy, dar nimic nu iese în evidență pentru mine.
Dacă există într-adevăr o problemă cu topologia nodurilor din clusterul meu, vă rugăm să mă direcționați către câteva resurse despre cum să depanez acest lucru, deoarece nu am putut găsi nimic semnificativ pe baza acestui mesaj de eroare.
$ kubectl descrie configmap kube-proxy -n kube-system
Nume: kube-proxy
Spațiu de nume: kube-system
Etichete: app=kube-proxy
Adnotări: kubeadm.kubernetes.io/component-config.hash: sha256:edce433d45f2ed3a58ee400690184ad033594e8275fdbf52e9c8c852caa7124d
Date
====
config.conf:
----
apiVersion: kubeproxy.config.k8s.io/v1alpha1
bindAddress: 0.0.0.0
bindAddressHardFail: fals
clientConnection:
acceptContentTypes: ""
izbucnire: 0
tipul de conținut: ""
kubeconfig: /var/lib/kube-proxy/kubeconfig.conf
qps: 0
clusterCIDR: 10.1.0.0/16
configSyncPeriod: 0s
contratrack:
maxPerCore: nul
min: nul
tcpCloseWaitTimeout: nul
tcpEstablishedTimeout: nul
detectLocalMode: ""
enableProfiling: false
healthzBindAddress: ""
hostnameOverride: ""
iptables:
masqueradeAll: false
masqueradeBit: nul
minSyncPeriod: 0s
syncPeriod: 0s
ipvs:
excludeCIDR-uri: nul
minSyncPeriod: 0s
programator: ""
strictARP: fals
syncPeriod: 0s
tcpFinTimeout: 0s
tcpTimeout: 0s
udpTimeout: 0s
fel: KubeProxyConfiguration
metricsBindAddress: ""
modul: ""
nodePortAddresses: null
oomScoreAdj: nul
portRange: ""
showHiddenMetricsForVersion: ""
udpIdleTimeout: 0s
winkernel:
enableDSR: fals
numele retelei: ""
sourceVip: ""
kubeconfig.conf:
----
apiVersion: v1
fel: Config
clustere:
- cluster:
autoritate de certificare: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
server: https://10.0.4.16:6443
nume: implicit
contexte:
- context:
cluster: implicit
spatiu de nume: implicit
utilizator: implicit
nume: implicit
contextul curent: implicit
utilizatori:
- nume: implicit
utilizator:
tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
BinaryData
====
Evenimente: <niciunul>
$ kubectl -n kube-system exec kube-proxy-gkkxq cat /var/lib/kube-proxy/kubeconfig.conf
kubectl exec [POD] [COMANDĂ] este DEPRECAT și va fi eliminat într-o versiune viitoare. Folosiți kubectl exec [POD] -- [COMANDĂ] în schimb.
apiVersion: v1
fel: Config
clustere:
- cluster:
autoritate de certificare: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
server: https://10.0.4.16:6443
nume: implicit
contexte:
- context:
cluster: implicit
spatiu de nume: implicit
utilizator: implicit
nume: implicit
contextul curent: implicit
utilizatori:
- nume: implicit
utilizator:
tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
The modul
implicit la iptables
, după cum confirmă jurnalele de mai sus.
Am și redirecționarea IP activată pe toate nodurile.
$ sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1