Problemă
În prezent, încerc să VPN tunelul nodurilor LAN-ului meu cu un nod în afara LAN-ului meu (în interiorul unui centru de date). Pentru asta, am încercat să folosesc K3S. Din păcate, nu pot da ping lucrătorului (în interiorul lanului) peste comandantul (în afara lanului). Funcționează ping între nodurile de lucru (ambele în interiorul lanului).
Reproduce
Pentru a instala k3s am folosit comanda curl -sfL https://get.k3s.io | sh -s - --flannel-backend=none --disable traefik
în timp ce, de asemenea, pentru a elimina flanela și a dezactiva traefik.
Pentru a instala calico am descărcat manifestul prin curl https://docs.projectcalico.org/manifests/calico.yaml -O
și am editat lista de conf pentru a permite ip_forwarding:
{
"nume": "k8s-pod-network",
"cniVersion": "0.3.1",
„pluginuri”: [
{
"tip": "calico",
"log_level": "informații",
"log_file_path": "/var/log/calico/cni/cni.log",
"datastore_type": "kubernetes",
"nodename": "NODE_NAME",
"mtu": 0,
„ipam”: {
"tip": "calico-ipam"
},
"politică": {
"tip": "k8s"
},
„kubernetes”: {
"kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
},
„container_settings”: { „allow_ip_forwarding”: true }
},
{
"type": "portmap",
„snat”: adevărat,
"capabilities": {"portMappings": true}
},
{
"type": "lățime de bandă",
"capabilities": {"bandwidth": true}
}
]
}
Și a executat comanda sudo sysctl net.ipv4.ip_forward=1
pe fiecare nod.
Pentru a activa Wireguard, am urmat cu desăvârșire instrucțiunile de pe https://docs.projectcalico.org/security/encrypt-cluster-pod-traffic și instalat wireguard prin
apt-get install wireguard
pe fiecare nod, descărcat calicoctl prin
curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.2/calicoctl"
și l-a făcut executabil cu
chmod +x calicoctl
.
După aceea am activat Wireguard cu comanda
./calicoctl patch felixconfiguration implicit --type='merge' -p '{"spec":{"wireguardEnabled":true}}'
.
După aceea, am instalat nginx-ingress cu manifestul yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.4/deploy/static/provider/cloud/deploy.yaml
.
Am alăturat fiecare nod din interiorul lanului meu cu masterul din afara lanului meu
curl -sfL https://get.k3s.io | K3S_URL=https://IP:6443 K3S_TOKEN=TOKEN sh -
Fiecare nod avea o adresă IP de tunel VPN, iar podurile erau rulate pe adresele vpn. IP-ul intern al fiecărui nod era propria sa adresă IP (nodurile din interiorul lanului meu au primit adresa IP a lanului, iar cele din afara lanului au primit adrese IP publice).