Score:0

Calicoctl ปฏิเสธใบรับรองในการติดตั้ง k3 ใหม่

ธง de

ฉันมี Ubuntu ติดตั้งใหม่ k3s ติดตั้งใหม่และดาวน์โหลด calicoctl ใหม่ ฉันได้ติดตั้งด้วยวิธีต่อไปนี้

ขด -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644"\
        INSTALL_K3S_EXEC="--flannel-backend=none --cluster-cidr=192.168.0.0/16\
        --disable-network-policy --disable=traefik" sh -

kubectl สร้าง -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl สร้าง -f https://docs.projectcalico.org/manifests/custom-resources.yaml

curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.2/calicoctl"

เมื่อฉันเรียกใช้ kubectl ทุกอย่างทำงานได้ดี เมื่อฉันเรียกใช้ calicoctl ฉันได้รับข้อผิดพลาดของใบรับรอง

# calicoctl ใช้ -f V000_000-host-policy.yaml 
ไม่สามารถรับข้อมูลคลัสเตอร์เพื่อตรวจสอบเวอร์ชันที่ไม่ตรงกัน: รับ "https://127.0.0.1:6443/apis/crd.projectcalico.org/v1/clusterinformations/default": x509: ใบรับรองที่ลงนามโดยหน่วยงานที่ไม่รู้จัก
ใช้ --allow-version-mismatch เพื่อแทนที่

ฉันได้คัดลอก คำขอส่วนหัว-ca.crt, ลูกค้า-ca.crt และ เซิร์ฟเวอร์-ca.crt ใบรับรองจาก /var/lib/rancher/k3s/server/tls ถึง /usr/local/share/ca-certificates และนำไปใช้กับ update-ca-ใบรับรอง. ฉันสามารถยืนยันได้ว่ามีใบรับรองอยู่ในรายการ /etc/ssl/certs/ca-certificates.crt.

นอกจากนี้ของฉัน ~/.kube/config ไฟล์มีเนื้อหาดังต่อไปนี้ (ฉันติดตั้งใหม่เป็นประจำ ไม่มีสิ่งนี้เป็นความลับ ฉันควรจะหวัง - แก้ไขฉันหากฉันผิด)

api เวอร์ชัน: v1
คลัสเตอร์:
- กลุ่ม:
    ข้อมูลผู้ออกใบรับรอง: LS0t...LS0K
    เซิร์ฟเวอร์: https://127.0.0.1:6443
  ชื่อ: ค่าเริ่มต้น
บริบท:
- บริบท:
    คลัสเตอร์: ค่าเริ่มต้น
    ผู้ใช้: ค่าเริ่มต้น
  ชื่อ: ค่าเริ่มต้น
บริบทปัจจุบัน: ค่าเริ่มต้น
ประเภท: การกำหนดค่า
ค่ากำหนด: {}
ผู้ใช้:
- ชื่อ: ค่าเริ่มต้น
  ผู้ใช้:
    ข้อมูลใบรับรองลูกค้า: LS0t...LS0K
    ลูกค้าคีย์ข้อมูล: LS0t...LQo=

และฉันมีการกำหนดค่าต่อไปนี้ใน /etc/cni/net.d/calico-kubeconfig

# ไฟล์ Kubeconfig สำหรับปลั๊กอิน Calico CNI ติดตั้งโดยผ้าดิบ/โหนด
api เวอร์ชัน: v1
ประเภท: การกำหนดค่า
คลัสเตอร์:
- ชื่อ: ท้องถิ่น
  กลุ่ม:
    เซิร์ฟเวอร์: https://10.43.0.1:443
    ข้อมูลผู้ออกใบรับรอง: "LS0t...tLS0K"
ผู้ใช้:
- ชื่อ:ผ้าดิบ
  ผู้ใช้:
    โทเค็น: eyJhb...tk4Q
บริบท:
- ชื่อ: ผ้าดิบบริบท
  บริบท:
    คลัสเตอร์: ท้องถิ่น
    ผู้ใช้:ผ้าดิบ
บริบทปัจจุบัน: บริบทผ้าดิบ

ฉันเปลี่ยนที่อยู่ใน calico-kubeconfig จาก 10.43.0.1:443 ถึง 127.0.0.1:6443 แต่นั่นไม่ได้สร้างความแตกต่าง

ไม่มีใครรู้วิธีการแก้ไขปัญหานี้? ข้อผิดพลาดของใบรับรองที่ฉันเห็นเป็นผลมาจาก CA หรือโทเค็นหรือไม่ Curl ไปยังที่อยู่เดียวกันยังบ่นเกี่ยวกับ CA ดังนั้นมันทำให้ฉันคิดว่านี่ไม่เกี่ยวข้องกับโทเค็น

Score:1
ธง de

โดยการตั้งค่าระดับบันทึกของ calicoctl เพื่อดีบัก (เช่น calicoctl -l ดีบักรับโหนด) ฉันค้นพบสิ่งที่เกิดขึ้น

โดยค่าเริ่มต้น calicoctl จะอ่าน /etc/calico/calicoctl.cfg. ไฟล์นี้จะไม่มีอยู่ถ้าคุณติดตั้ง calicoctl แบบที่ฉันมีดังนั้นลูกค้าจึงกลับไปใช้ ~/.kube/config. ซึ่งมีข้อมูลบางส่วนแต่ไม่ใช่ข้อมูลทั้งหมด

ในฐานะส่วนหนึ่งของข้อมูลบันทึกการดีบัก คอนฟิกูเรชันที่โหลดจะแสดงขึ้นด้วย ฉันสามารถอนุมานได้ว่าคุณสมบัติการกำหนดค่านั้นแตกต่างจากคุณสมบัติในเล็กน้อย เอกสาร.

ฉันสร้างสิ่งต่อไปนี้ /etc/calico/calicoctl.cfg ไฟล์ (รูปแบบ yaml)

รุ่น api: projectcalico.org/v3
ชนิด: CalicoAPIConfig
ข้อมูลเมตา:
ข้อมูลจำเพาะ:
  datastoreType: "kubernetes"
  kubeconfig: "/home/user/.kube/config"
  K8sAPIToken: "eyJh...xQHA"
  K8sCAFile: "/var/lib/rancher/k3s/server/tls/server-ca.crt"

ที่ไหน K8sAPIToken ฉันเอามาจาก /etc/cni/net.d/calico-kubeconfig. ควรเป็นโทเค็นเดียวกันกับที่มาจากคำถาม ฉันไม่แน่ใจว่าเหตุใดจึงเปลี่ยนแปลง (รีเฟรช?) ไม่ว่าจะด้วยวิธีใด วิธีการข้างต้นช่วยแก้ปัญหาได้ (อย่างน้อยก็ชั่วคราว)

Score:0
ธง it

ฉันมีการตั้งค่าที่คล้ายกัน (ยกเว้น k3s ทำงานภายในคอนเทนเนอร์ Ubuntu LXD ที่ไม่มีสิทธิพิเศษ) ด้วย k3s.บริการ เริ่มใช้:

ExecStart=/usr/local/bin/k3s \
    เซิร์ฟเวอร์ --snapshotter=native \
    --kubelet-arg=feature-gates=KubeletInUserNamespace=true \
    --kube-controller-manager-arg=feature-gates=KubeletInUserNamespace=true \
    --kube-apiserver-arg=feature-gates=KubeletInUserNamespace=true,RemoveSelfLink=false \
    --disable=servicelb --disable=traefik --flannel-backend=none --disable-network-policy \
    --cluster-cidr=192.168.0.0/16 --cluster-init

ฉันไม่จำเป็นต้องคัดลอกใบรับรองใดๆ เพียงแค่:

ln -s /etc/rancher/k3s/k3s.yaml ~/.kube/config

ป้อนคำอธิบายรูปภาพที่นี่

โพสต์คำตอบ

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