Score:2

Kubernets 1.21.3 ค่าที่แนะนำสำหรับ "clusterCIDR" ใน "KubeProxyConfiguration"

ธง cn

ฉันกำลังพยายามเข้าร่วมโหนดใหม่กับโหนดที่มีอยู่ v1.21.3 คลัสเตอร์ด้วย Calico CNI ร่วมออกคำสั่ง คลัสเตอร์CIDR คำเตือน.

วิธีแก้ไขข้อความเตือนเครือข่ายย่อยนี้

# kubeadm เข้าร่วม master-vip:8443 --token xxx --discovery-token-ca-cert-hash sha256:xxxx
[preflight] การตรวจสอบก่อนการบิน
[preflight] การอ่านการกำหนดค่าจากคลัสเตอร์...
[preflight] FYI: คุณสามารถดูไฟล์ปรับแต่งนี้ด้วย 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0809 14:10:27.717696 75868 utils.go:69] ค่าที่แนะนำสำหรับ "clusterCIDR" ใน "KubeProxyConfiguration" คือ: 10.201.0.0/16; ค่าที่ระบุคือ: 10.203.0.0/16
[kubelet-start] กำลังเขียนการกำหนดค่า kubelet ไปยังไฟล์ "/var/lib/kubelet/config.yaml"
[kubelet-start] การเขียนไฟล์สภาพแวดล้อม kubelet พร้อมแฟล็กไปยังไฟล์ "/var/lib/kubelet/kubeadm-flags.env"

อัปเดต:

ฉันกำลังใช้ 10.201.0.0/16 ระหว่างการตั้งค่าคลัสเตอร์ ต่อมาฉันเปลี่ยนเป็น 10.203.0.0/16. ไม่แน่ใจว่ามันยังคงได้รับ 10.201.0.0/16 ค่าซับเน็ต

นี่คือมูลค่าสุทธิย่อย

# sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep คลัสเตอร์-cidr
    - --cluster-cidr=10.203.0.0/16

การถ่ายโอนข้อมูลคลัสเตอร์ kubectl | grep คลัสเตอร์-cidr
                            "--คลัสเตอร์-cidr=10.203.0.0/16",
                            "--คลัสเตอร์-cidr=10.203.0.0/16",
                            "--คลัสเตอร์-cidr=10.203.0.0/16",

ขั้นตอนในการอัปเดต Pod CIDR จาก 10.201.0.0/16 เป็น 10.203.0.0/16

  1. ใช้คำสั่งนี้อัปเดต configmap kubeadm-confg kubectl -n ระบบ kube แก้ไข cm kubeadm-config

podSubnet: 10.203.0.0/16

  1. อัปเดต kuber-controller-manger แล้วรีสตาร์ท

sed -i 's/10.201.0.0/10.203.0.0/' /etc/kubernetes/manifests/kube-controller-manager.yaml

หลังจากอัพเดท IP

การกำหนดค่าทั้งหมดแสดงซับเน็ตเป็น 10.203.0.0 แต่พ็อดที่สร้างในเครือข่ายย่อย `10.201.0.0'

# kubectl รับ cm kube-proxy -n kube-system -o yaml |grep -i clusterCIDR
    คลัสเตอร์CIDR: 10.203.0.0/16
# kubectl รับ -o yaml |grep -i podcidr
    podCIDR: 10.203.0.0/24
    podCIDRs:
    podCIDR: 10.203.1.0/24
    podCIDRs:
    podCIDR: 10.203.2.0/24
    podCIDRs:
    podCIDR: 10.203.3.0/24
    podCIDRs:
    podCIDR: 10.203.5.0/24
    podCIDRs:
    podCIDR: 10.203.4.0/24
    podCIDRs:
    podCIDR: 10.203.6.0/24
    podCIDRs:
Mikołaj Głodziak avatar
id flag
คุณสามารถเพิ่มข้อมูลต่อไปนี้ในคำถาม: ที่อยู่ IP ของตัวควบคุมหลักและโหนดผู้ปฏิบัติงานที่คุณพยายามแนบ เอาต์พุตของคำสั่ง `sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr` และ `kubectl การถ่ายโอนข้อมูลคลัสเตอร์ | grep cluster-cidr` (ทั้งจากตัวควบคุมหลัก)? คุณได้แก้ไขการกำหนดค่าการทำงานบนตัวควบคุมหลักหรือไม่? คุณใช้เครือข่ายใดในคำสั่ง `kubeadm` - `sudo kubeadm init --pod-network-cidr={network}`
sfgroups avatar
cn flag
@MikoÅajGÅodziak เพิ่มการตอบกลับแบบอินไลน์ไปยังโพสต์
Mikołaj Głodziak avatar
id flag
คุณช่วยอธิบาย (บทช่วยสอน ขั้นตอน) คุณเปลี่ยนเครือข่าย `clusterCIDR` จาก `10.201.0.0/16` เป็น `10.203.0.0/16` ได้อย่างไร ฉันพยายามจำลองปัญหาของคุณ
Score:2
ธง cn

ฉันสามารถทำซ้ำปัญหาของคุณได้ ฉันได้รับข้อผิดพลาดเดียวกัน จำเป็นต้องอัปเดตไฟล์การกำหนดค่าอื่นๆ อีกสองสามไฟล์

หากต้องการเปลี่ยนพูล IP ของพ็อดและโหนดอย่างสมบูรณ์ คุณต้องอัปเดต PodCIDR และ คลัสเตอร์CIDR ค่าในไฟล์คอนฟิกูเรชันไม่กี่ไฟล์:

  • อัปเดต ConfigMap kubeadm-confg - คุณทำไปแล้ว

  • ไฟล์อัพเดท /etc/kubernetes/manifests/kube-controller-manager.yaml - คุณทำไปแล้ว

  • ปรับปรุงข้อกำหนดของโหนดที่เหมาะสม PodCIDR มูลค่าและเพิ่มอีกครั้งในคลัสเตอร์

  • อัปเดต ConfigMap kube-พร็อกซี ใน ระบบ kube เนมสเปซ

  • เพิ่มพูล IP ใหม่ใน Calico CNI และลบอันเก่า สร้างการปรับใช้ใหม่

อัพเดตข้อกำหนดของโหนด:

  1. รับชื่อโหนด: kubectl รับไม่ - ในกรณีของฉันก็คือ ผู้ควบคุม
  2. บันทึกคำจำกัดความลงในไฟล์: kubectl ไม่ได้รับคอนโทรลเลอร์ -o yaml > file.yaml
  3. แก้ไข ไฟล์. yaml -> อัปเดต PodCIDR และ podCIDR ค่ากับช่วง IP ใหม่ของคุณ ในกรณีของคุณ 10.203.0.0
  4. ลบเก่าและใช้ข้อกำหนดโหนดใหม่: kubectl ลบไม่มีตัวควบคุม && kubectl ใช้ -f file.yaml

โปรดทราบว่าคุณต้องทำตามขั้นตอนเหล่านั้นสำหรับทุกโหนดในคลัสเตอร์ของคุณ

อัปเดต ConfigMap kube-พร็อกซี ใน ระบบ kube เนมสเปซ

  1. รับการกำหนดค่าปัจจุบันของ kube-พร็อกซี: kubectl รับ cm kube-proxy -n kube-system -o yaml > kube-proxy.yaml
  2. แก้ไข kube-proxy.yaml -> อัปเดต คลัสเตอร์CIDR คุ้มค่ากับช่วง IP ใหม่ของคุณ ในกรณีของคุณ 10.203.0.0
  3. ลบเก่าและใช้ใหม่ kube-พร็อกซี ConfigMap: kubectl ลบ cm kube-proxy -n kube-system && kubectl ใช้ -f kube-proxy.yaml

เพิ่มพูล IP ใหม่ใน Calico และลบอันเก่า:

  1. ดาวน์โหลดไบนารี Calico และทำให้เรียกใช้งานได้:

    sudo curl -o /usr/local/bin/calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.0/calicoctl"
    sudo chmod +x /usr/local/bin/calicoctl
    
  2. เพิ่มพูล IP ใหม่:

    calicoctl สร้าง -f -<<EOF
    รุ่น api: projectcalico.org/v3
    ชนิด: IPPool
    ข้อมูลเมตา:
      ชื่อ: my-new-pool
    ข้อมูลจำเพาะ:
      รหัส: 10.203.0.0/16
      ipipMode: เสมอ
      natOutgoing: จริง
    อฟ
    

    ตรวจสอบว่ามีพูล IP ใหม่หรือไม่: calicoctl รับ ippool -o กว้าง

  3. รับการกำหนดค่าเพื่อปิดใช้งานกลุ่ม IP เก่า -> calicoctl รับ ippool -o yaml > pool.yaml

  4. แก้ไขการกำหนดค่า: -> เพิ่ม ปิดใช้งาน: จริง สำหรับ เริ่มต้น-ipv4-ippool ใน pool.yaml:

    รุ่น api: projectcalico.org/v3
    รายการ:
    - รุ่น api: projectcalico.org/v3
      ชนิด: IPPool
      ข้อมูลเมตา:
        การสร้างการประทับเวลา: "2021-08-12T07:50:24Z"
        ชื่อ: default-ipv4-ippool
        ทรัพยากรเวอร์ชัน: "666"
      ข้อมูลจำเพาะ:
        ขนาดบล็อก: 26
        รหัส: 10.201.0.0/16
        ipipMode: เสมอ
        natOutgoing: จริง
        nodeSelector: ทั้งหมด ()
        vxlanMode: ไม่เคย
        ปิดการใช้งาน: จริง
    
  5. ใช้การกำหนดค่าใหม่: ใช้ calictoctl -f pool.yaml

    ยกเว้นเอาต์พุตของ calicoctl รับ ippool -o กว้าง สั่งการ:

    ชื่อ CIDR NAT IPIPMODE VXLANMODE DISABLED SELECTOR   
    default-ipv4-ippool 10.201.0.0/16 จริงเสมอ ไม่จริงทั้งหมด ()      
    my-new-pool 10.203.0.0/16 จริง เสมอ ไม่เป็นเท็จ ทั้งหมด()      
    
  6. สร้างพ็อดที่อยู่ใน 10.201.0.0 เครือข่าย (ในทุกเนมสเปซ รวมถึง ระบบ kube เนมสเปซ): เพียงลบออกและควรสร้างใหม่ทันทีในช่วงพูล IP ใหม่ ตัวอย่างเช่น:

    kubectl ลบ pod calico-kube-controllers-58497c65d5-rgdwl -n kube-system
    kubectl ลบพ็อด coredns-78fcd69978-xcz88 -n kube-system
    kubectl ลบพ็อด nginx-deployment-66b6c48dd5-5n6nw
    ฯลฯ..
    

    คุณยังสามารถลบและใช้การปรับใช้

หลังจากใช้ขั้นตอนเหล่านั้น จะไม่มีคำเตือนเกี่ยวกับ คลัสเตอร์CIDR ค่าเมื่อเพิ่มโหนดใหม่ พ็อดใหม่ถูกสร้างขึ้นในช่วงพูล IP ที่เหมาะสม

แหล่งที่มา:

sfgroups avatar
cn flag
อัปเดตเป็นค่า `10.203.0.0` แต่ยังคงสร้างพ็อดด้วยที่อยู่ `10.201.0.0.` แบบนี้ `coredns-85d9df8444-8dpql 1/1 วิ่ง 0 10m 10.201.22.206`
sfgroups avatar
cn flag
Calico มีช่วงที่อยู่ IP สำหรับพ็อด เราจำเป็นต้องเปลี่ยนเพื่อให้ตรงกับพ็อดซิดร์ด้วยหรือไม่ `calicoctl รับ ippool -o กว้าง ชื่อ CIDR NAT IPIPMODE VXLANMODE DISABLED SELECTOR default-ipv4-ippool 10.201.0.0/16 จริงเสมอ ไม่เคยเป็นเท็จทั้งหมด () '
Mikolaj S. avatar
cn flag
จุดที่ดี ความผิดพลาดของฉัน ฉันแก้ไขคำตอบของฉันว่าจะแก้ไขอย่างไร โปรดตรวจสอบและแจ้งให้เราทราบหากใช้งานได้
sfgroups avatar
cn flag
ฉันเห็นขั้นตอน, เครซี่ของมัน, ยังคงสร้างพ็อดในซับเน็ต `10.201.0.0` ที่นี่สระว่ายน้ำผ้าดิบ `# calicoctl รับ ippool -o กว้าง ชื่อ CIDR NAT IPIPMODE VXLANMODE DISABLED SELECTOR default-ipv4-ippool 10.201.0.0/16 จริง เสมอ ไม่เป็นเท็จ ทั้งหมด() my-new-pool 10.203.0.0/16 จริงเสมอ ไม่จริงทั้งหมด() `
Mikolaj S. avatar
cn flag
จากเอาต์พุตที่คุณส่ง ดูเหมือนว่าคุณปิดใช้งานซับเน็ต `10.203.0.0` แทนที่จะเป็น `10.201.0.0` ;)
Mikolaj S. avatar
cn flag
ฉันเพิ่มผลลัพธ์ที่ยกเว้นในคำตอบของฉัน
sfgroups avatar
cn flag
ดีฉันมองข้ามผลลัพธ์ ขอบคุณสำหรับความช่วยเหลือ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา