Score:0

ไม่สามารถเข้าถึง Kubernetes Dashboard (ข้อผิดพลาด 404)

ธง in

สิ่งที่ฉันพยายามทำคือเปิด Kubernetes Dashboard บนคลัสเตอร์ของฉัน

แดชบอร์ดได้รับการติดตั้งโดยใช้ Kubespray ดังนั้นฉันค่อนข้างแน่ใจว่าติดตั้งอย่างถูกต้อง (อย่างน้อยพ็อดก็ทำงานโดยไม่มีข้อผิดพลาด)

ภาพรวมการตั้งค่าของคลัสเตอร์มีดังต่อไปนี้:

$ kubectl รับ svc --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) อายุ
kubernetes เริ่มต้น ClusterIP 10.65.0.1 <ไม่มี> 443/TCP 2d
ระบบ kube coredns ClusterIP 10.65.0.3 <ไม่มี> 53/UDP,53/TCP,9153/TCP 2d
แดชบอร์ดระบบ kube-ตัวชี้วัด-scraper ClusterIP 10.65.43.101 <ไม่มี> 8000/TCP 2d
ระบบ kube kubernetes-แดชบอร์ด ClusterIP 10.65.10.7 <ไม่มี> 443/TCP 2d

$ kubectl รับเข้า --all-namespaces
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
แดชบอร์ดระบบ kube <ไม่มี> * 80 4m22s

$ cat dash_ingress.yml
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
  เนมสเปซ: ระบบ kube
  ชื่อ: แดชบอร์ด
  selfLink: /api/แดชบอร์ด
ข้อมูลจำเพาะ:
  แบ็กเอนด์เริ่มต้น:
    บริการ:
      ชื่อ: แดชบอร์ด kubernetes
      ท่า:
        หมายเลข: 443

สมมติว่าเซิร์ฟเวอร์ของฉันทำงานบน IP 10.11.12.13 เมื่อฉันพยายามเข้าถึง http://10.11.12.13/api/dashboardฉันได้รับข้อผิดพลาด 404 เมื่อลองใช้ https:// Chrome รายงานแทน ERR_CONNECTION_TIMED_OUT. นอกจากนั้นทั้งหมด http:// การโทรไปยัง IP โดยไม่มีส่วนต่อท้ายใด ๆ ก็จบลงด้วยข้อผิดพลาด 404

ข้อผิดพลาด 404 ของ nginx เป็นสิ่งที่ดีทีเดียว เนื่องจากอย่างน้อย จิงซ์ ดูเหมือนว่าจะทำงานได้อย่างถูกต้อง แต่จะเข้าถึงแดชบอร์ดได้อย่างไรหรือจะเปิดเผยให้เข้าถึงได้อย่างไร ฉันควรลองพอร์ตอื่น (ตรวจสอบ 8443 แล้ว - จบลงเหมือนทั้งหมด https:// โทร) หรืออย่างอื่น?

แก้ไข:

หลังจากกำหนดค่าวัตถุ Ingress ใหม่ดังนี้ (เพิ่มคำอธิบายประกอบ):

รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
  เนมสเปซ: ระบบ kube
  ชื่อ: แดชบอร์ด
  selfLink: /api/แดชบอร์ด
  คำอธิบายประกอบ:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/service-upstream: "จริง"
ข้อมูลจำเพาะ:
  แบ็กเอนด์เริ่มต้น:
    บริการ:
      ชื่อ: แดชบอร์ด kubernetes
      ท่า:
        หมายเลข: 443

ฉันพบว่าการโทร https://10.11.12.13:6443/ ให้ข้อผิดพลาด 403 โดยส่งคืนวัตถุสถานะต่อไปนี้:

{
  "ชนิด": "สถานะ",
  "apiVersion": "v1",
  "ข้อมูลเมตา": {},
  "สถานะ": "ล้มเหลว",
  "ข้อความ": "ต้องห้าม: ผู้ใช้ \"ระบบ:ไม่ระบุชื่อ\" ไม่สามารถรับเส้นทางได้ 
\"/api/แดชบอร์ด\"",
  "เหตุผล": "ต้องห้าม",
  "รายละเอียด": {},
  "รหัส": 403
}

ไม่แน่ใจว่ามาจาก Dashboard หรือบริการ Kubernetes อื่นๆ หรือไม่ (Ingress ได้รับการกำหนดค่าสำหรับ Dashboard แต่ฉันยังขาดความรู้ในหัวข้อนี้)

แก้ไข #2:

โทร http://10.11.12.13 เปลี่ยนเส้นทางไปที่ http://10.11.12.13/#/เข้าระบบ หน้าและหน้าขอโทเค็นหรือไฟล์กำหนดค่า การลงชื่อเข้าใช้ถูกปิดใช้งานเนื่องจากไม่มีการสื่อสาร https แม้ว่า...

Andrew Skorkin avatar
tr flag
สวัสดี @AbreQueVoy คุณต้องการเข้าถึงแดชบอร์ดของคุณผ่านทาง Ingress เท่านั้นหรือไม่? เนื่องจากมี[วิธีอื่นที่เป็นไปได้](https://github.com/kubernetes/dashboard/tree/master/docs/user/accessing-dashboard)
AbreQueVoy avatar
in flag
สวัสดี @AndrewSkorkin Ingress เป็นตัวเลือกเดียวที่พิจารณาจนถึงตอนนี้
Andrew Skorkin avatar
tr flag
คุณแก้ปัญหานี้แล้วหรือยัง?
AbreQueVoy avatar
in flag
ขณะนี้ฉันจัดการเพื่อเปิดใช้งานชั่วคราวโดยใช้ NodePort แต่ในระยะยาว Ingress จะเป็นตัวเลือกถาวรดังนั้นการใช้ Ingress ยังไม่ประสบความสำเร็จ

โพสต์คำตอบ

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