ปัญหา
ขณะนี้ฉันกำลังพยายามใช้โหนดอุโมงค์ VPN ของ LAN ด้วยโหนดนอก LAN ของฉัน (ภายในศูนย์ข้อมูล) เพื่อสิ่งนั้น ฉันพยายามใช้ K3S น่าเศร้าที่ฉันไม่สามารถ ping พนักงาน (ภายใน lan) กับเจ้านาย (นอก lan) การ Ping ระหว่างโหนดผู้ปฏิบัติงานทำงานได้ (ทั้งใน LAN)
ทำซ้ำ
ในการติดตั้ง k3s ฉันใช้คำสั่ง ขด -sfL https://get.k3s.io | sh -s - --flannel-backend=none --ปิดการใช้งาน traefik
ในขณะเดียวกันก็ลบสักหลาดและปิดการใช้งาน traefik
ในการติดตั้งผ้าดิบฉันดาวน์โหลดไฟล์รายการผ่าน ขด https://docs.projectcalico.org/manifests/calico.yaml -O
และแก้ไขรายการ conf เพื่ออนุญาต ip_forwarding:
{
"ชื่อ": "k8s-pod-network",
"cniVersion": "0.3.1",
"ปลั๊กอิน": [
{
"ประเภท": "ผ้าดิบ",
"log_level": "ข้อมูล",
"log_file_path": "/var/log/calico/cni/cni.log",
"datastore_type": "kubernetes",
"ชื่อโหนด": "NODE_NAME",
"mtu": 0,
"ไอแพม": {
"ประเภท": "ผ้าดิบ-ipam"
},
"นโยบาย": {
"ประเภท": "k8s"
},
"kubernetes": {
"kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
},
"container_settings": { "allow_ip_forwarding": จริง }
},
{
"ประเภท": "พอร์ตแมป",
"snat": จริง
"ความสามารถ": {"portMappings": จริง}
},
{
"ประเภท": "แบนด์วิธ",
"ความสามารถ": {"แบนด์วิธ": จริง}
}
]
}
และดำเนินการตามคำสั่ง sudo sysctl net.ipv4.ip_forward=1
ในทุกโหนด
ในการเปิดใช้งาน Wireguard ฉันทำตามคำแนะนำบน https://docs.projectcalico.org/security/encrypt-cluster-pod-traffic และติดตั้งไวร์การ์ดผ่าน
apt-get ติดตั้ง wireguard
ในทุก ๆ โหนด ให้ดาวน์โหลด calicoctl ผ่าน
curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.2/calicoctl"
และทำให้สามารถเรียกใช้งานได้ด้วย
chmod +x คาลิโคทล์
.
หลังจากนั้นฉันก็เปิดใช้งาน Wireguard ด้วยคำสั่ง
./calicoctl แพทช์ felixconfiguration เริ่มต้น --type='merge' -p '{"spec":{"wireguardEnabled":true}}'
.
หลังจากนั้นฉันติดตั้ง nginx-ingress ด้วยรายการ yaml
kubectl ใช้ -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.4/deploy/static/provider/cloud/deploy.yaml
.
ฉันเข้าร่วมทุกโหนดใน lan กับมาสเตอร์นอก lan ด้วย
ขด -sfL https://get.k3s.io | K3S_URL=https://IP:6443 K3S_TOKEN=TOKEN sh -
ทุกโหนดมีที่อยู่ IP ของอุโมงค์ VPN และพ็อดถูกเรียกใช้บนที่อยู่ VPN IP ภายในของทุกโหนดเป็นที่อยู่ IP ของตัวเอง (โหนดภายใน LAN ของฉันได้รับที่อยู่ IP ของ LAN และโหนดที่อยู่นอก LAN ได้รับที่อยู่ IP สาธารณะ)