ฉันมีปัญหากับการติดตั้ง rapberry pi kubernetes
ปัญหา:
ฉันมีผู้จัดการใบรับรองให้เข้ารหัสความท้าทาย ACME ที่รออยู่เนื่องจากรหัสข้อผิดพลาด 401 ในการติดตั้ง kubernetes ของ Bare Metal
ติดตั้ง
แพลตฟอร์ม: Raspberry Pi 4
ระบบปฏิบัติการ: เซิร์ฟเวอร์ Ubuntu 20.04.3 LTS 64 บิต
ขาเข้า: Nginx
ตัวโหลดบาลานเซอร์: Metallb
เครือข่าย: Calico
ฉันติดตั้ง metallb และ nginx ผ่านหางเสือโดยใช้:
หางเสือติดตั้ง metallb metallb/metallb --namespace kube-system\
--set configInline.address-pools[0].name=default\
--set configInline.address-pools[0].protocol=layer2\
--set configInline.address-pools[0].addresses[0]=<ip-range>
และ
หางเสือติดตั้ง ingress-nginx ingress-nginx/ingress-nginx --namespace kube-system
Letsencrypt ของฉันมีลักษณะดังนี้:
apiVersion: cert-manager.io/v1
ประเภท: ClusterIssuer
ข้อมูลเมตา:
ชื่อ: letsencrypt-prod
เนมสเปซ: cert-manager
ข้อมูลจำเพาะ:
จุดสุดยอด:
อีเมล: <อีเมลถูกแก้ไขแล้ว>
เซิร์ฟเวอร์: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
ชื่อ: letsencrypt-prod
นักแก้ปัญหา:
- http01:
ทางเข้า:
คลาส: nginx
การตั้งค่าขาเข้า nginx ของฉันมีลักษณะดังนี้:
---
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
เนมสเปซ: "nextcloud" # เนมสเปซเดียวกันกับการปรับใช้
ชื่อ: "nextcloud-ingress" # ชื่อของขาเข้า (ดูที่ kubectl รับขาเข้า -A)
คำอธิบายประกอบ:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-redirect: "จริง"
nginx.ingress.kubernetes.io/force-ssl-redirect: "จริง"
cert-manager.io/cluster-issuer: "letsencrypt-prod" # เข้ารหัสโดยใช้ ClusterIssuer ที่ปรับใช้ขณะตั้งค่า Cert-Manager
nginx.ingress.kubernetes.io/proxy-body-size: "125m" # เพิ่มขนาดสูงสุดที่อนุญาตของเนื้อหาคำขอไคลเอ็นต์
ข้อมูลจำเพาะ:
tls:
- เจ้าภาพ:
- "nextcloud.<domain redacted>" # โฮสต์เพื่อเข้าถึง nextcloud
secretName: "nextcloud-prod-tls" # ชื่อของใบรับรอง (ดูที่ kubectl รับใบรับรอง -A)
กฎ:
- โฮสต์: "nextcloud.<domain redacted>" # โฮสต์เพื่อเข้าถึง nextcloud
http:
เส้นทาง:
- เส้นทาง: / # เราจะเข้าถึง NextCloud ผ่าน URL https://nextcloud.<domain.com>/
pathType: คำนำหน้า
แบ็กเอนด์:
บริการ:
ชื่อ: "เซิร์ฟเวอร์ถัดไปคลาวด์" # การแมปกับบริการ (ดูที่ kubectl รับบริการ -n nextcloud)
ท่า:
หมายเลข: 80 # การแมปกับพอร์ต (ดูที่ kubectl รับบริการ -n nextcloud)
---
การดีบัก
เมื่อฉันดูบันทึกตัวควบคุมขาเข้า (เนมสเปซอื่น) ฉันเห็น:
บริการ "nextcloud/cm-acme-http-solver-9tccf" ไม่มีจุดสิ้นสุดที่ใช้งานอยู่
แต่จุดสิ้นสุดดูเหมือนจะมีอยู่เมื่อฉันทำ kubectl รับจุดสิ้นสุด -A
ใบรับรองของฉันมีอยู่เป็น:
kubectl รับใบรับรอง -n nextcloud
ชื่อพร้อมอายุความลับ
nextcloud-prod-tls เท็จ nextcloud-prod-tls 3h58m
ทำตามขั้นตอนการแก้ไขข้อบกพร่องที่แนะนำจากผู้จัดการใบรับรอง ฉันติดตามปัญหาไปจนถึงความท้าทายที่ฉันได้รับ:
สถานะ:
นำเสนอ: จริง
การประมวลผล: จริง
เหตุผล: กำลังรอการเผยแพร่ความท้าทาย HTTP-01: รหัสสถานะไม่ถูกต้อง '401' คาดว่าจะเป็น '200'
รัฐ: รอดำเนินการ
เหตุการณ์: <ไม่มี>
ฉันติดอยู่นิดหน่อย ฉันค้นหาในกูเกิลแล้ว แต่ดูเหมือนจะไม่มีอะไรมากเกี่ยวกับเรื่องนี้ ฉันเดาว่าฉันได้เตรียมการตั้งค่าเรียบร้อยแล้ว แต่ฉันได้ติดตามเอกสารประกอบในหน้าที่เกี่ยวข้องเป็นหลัก พอยน์เตอร์ใด ๆ ที่จะได้รับการชื่นชมอย่างมาก :) หากคุณต้องการข้อมูลเพิ่มเติม โปรดแจ้งให้เราทราบ ขณะนี้ค่อนข้างยาว ดังนั้นฉันจึงพยายามรวมสิ่งที่คิดว่าเป็นจุดปัญหา