![Wie behebt man „Fehler beim Anwenden der ‚Node‘-Ressource: [Aktualisierungskonflikt: Node(...)]“ beim Versuch, die Calico-Knotenkonfiguration anzuwenden?](https://rvso.com/image/770849/Wie%20behebt%20man%20%E2%80%9EFehler%20beim%20Anwenden%20der%20%E2%80%9ANode%E2%80%98-Ressource%3A%20%5BAktualisierungskonflikt%3A%20Node(...)%5D%E2%80%9C%20beim%20Versuch%2C%20die%20Calico-Knotenkonfiguration%20anzuwenden%3F.png)
Ich spiele mit Kubernetes und habe zwei VirtualBox-Maschinen – Master und Worker. Jede hat zwei Netzwerkschnittstellen – eine für das Internet und eine für die Kommunikation zwischen den anderen VMs und Host-Maschinen. Und ich habe Probleme mit der Einrichtung von Calico, weil es automatisch die falsche Netzwerkschnittstelle erkennt. Ich habe einige Einstellungen vorgenommen, um das Problem zu beheben, aber ein Problem bleibt bestehen – der Worker nimmt die falsche IP. Und ich habe herausgefunden, wie man das behebt – aber es funktioniert nicht. Details unten.
Die aktuelle Worker-Konfiguration ist ( 10.0.3.15
ist das die „falsche“ IP):
[12:35]user@ubuntu-vbox-k8s-master[~]$ ./calicoctl get node ubuntu-vbox-k8s-worker -o yaml
apiVersion: projectcalico.org/v3
kind: Node
metadata:
annotations:
projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"ubuntu-vbox-k8s-worker","kubernetes.io/os":"linux"}'
creationTimestamp: "2021-09-26T10:59:00Z"
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
kubernetes.io/arch: amd64
kubernetes.io/hostname: ubuntu-vbox-k8s-worker
kubernetes.io/os: linux
name: ubuntu-vbox-k8s-worker
resourceVersion: "9219"
uid: 6f5efd41-e06c-4f9d-9b3a-248af88a385e
spec:
addresses:
- address: 10.0.3.15/24
type: CalicoNodeIP
- address: 10.0.3.15
type: InternalIP
bgp:
ipv4Address: 10.0.3.15/24
ipv4IPIPTunnelAddr: 192.168.77.64
orchRefs:
- nodeName: ubuntu-vbox-k8s-worker
orchestrator: k8s
status: {}
Ich versuche, eine feste Methode anzuwenden:
[12:37]user@ubuntu-vbox-k8s-master[~]$ cat calico-worker.yaml
apiVersion: projectcalico.org/v3
kind: Node
metadata:
annotations:
projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"ubuntu-vbox-k8s-worker","kubernetes.io/os":"linux"}'
creationTimestamp: "2021-09-26T10:59:00Z"
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
kubernetes.io/arch: amd64
kubernetes.io/hostname: ubuntu-vbox-k8s-worker
kubernetes.io/os: linux
name: ubuntu-vbox-k8s-worker
resourceVersion: "5303"
uid: 6f5efd41-e06c-4f9d-9b3a-248af88a385e
spec:
addresses:
- address: 192.168.56.109
type: InternalIP
orchRefs:
- nodeName: ubuntu-vbox-k8s-worker
orchestrator: k8s
status: {}
und bekam einen Fehler:
[12:38]user@ubuntu-vbox-k8s-master[~]$ ./calicoctl apply -f calico-worker.yaml
Failed to apply 'Node' resource: [update conflict: Node(ubuntu-vbox-k8s-worker)]
Es ist seltsam, weil es mir gelungen ist, den Calico-Masterknoten auf die gleiche Weise zu reparieren, ohne dass es zu Konflikten mit der Konfiguration kam:
apiVersion: projectcalico.org/v3
kind: Node
metadata:
annotations:
projectcalico.org/kube-labels: '{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"ubuntu-vbox-k8s-master","kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":"","node-role.kubernetes.io/master":"","node.kubernetes.io/exclude-from-external-load-balancers":""}'
creationTimestamp: "2021-09-26T10:56:24Z"
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
kubernetes.io/arch: amd64
kubernetes.io/hostname: ubuntu-vbox-k8s-master
kubernetes.io/os: linux
node-role.kubernetes.io/control-plane: ""
node-role.kubernetes.io/master: ""
node.kubernetes.io/exclude-from-external-load-balancers: ""
name: ubuntu-vbox-k8s-master
resourceVersion: "9052"
uid: 9e6d55c6-f449-4ded-ab47-ea9d889d6b43
spec:
addresses:
- address: 192.168.56.108
type: InternalIP
bgp:
ipv4IPIPTunnelAddr: 192.168.77.0
orchRefs:
- nodeName: ubuntu-vbox-k8s-master
orchestrator: k8s
status:
podCIDRs:
- 192.168.77.0/24
Antwort1
Gelöst mit Hilfe des Calico Slack-Kanals durch Befehl kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=enp0s3
vonhttps://docs.projectcalico.org/networking/ip-autodetection