kubernetes (เจ้าของฟาร์ม) เข้าใจทางเข้า

สิ่งที่ฉันรู้/กำลังทำงานอยู่: ฉันได้รับการตั้งค่า rancher ha (2.4.2) บน vsphere โดยมี L4 nginx lb อยู่ข้างหน้า เข้าถึง UI และจัดเตรียมคลัสเตอร์ใหม่ (ไดรเวอร์โหนด vsphere) ใช้งานได้ดี ฉันรู้ว่าฉันไม่ได้อยู่ในระบบคลาวด์และไม่สามารถใช้ L7 LB ได้ (นอกเหนือจาก nip.ip หรือ metal lb บางที) และการปรับใช้ปริมาณงานและเปิดเผยผ่าน nodeport นั้นใช้งานได้ดี (ดังนั้นปริมาณงานจึงพร้อมใช้งานบนพอร์ตที่ระบุในแต่ละโหนด พ็อดตามกำลังทำงานอยู่)

คำถามของฉัน: เป็นไปได้ไหมที่จะเปิดเผยแอปพลิเคชัน (อาจผ่านทางทางเข้า) บนคลัสเตอร์ที่ทำงานอยู่ภายใต้โดเมน/ที่อยู่ ฉันสามารถเข้าถึง rancher ui ได้ (ในกรณีของฉัน: https://rancher-things.local)? เช่น มีภายนอก (เครือข่ายท้องถิ่น ไม่ใช่สาธารณะ) หากฉันจะปรับใช้รีจิสทรีท่าเรือและสามารถเปิดเผยได้เช่น https://rancherthings.local/harbor? หรือหากวิธีนี้ใช้ไม่ได้ผล เป็นไปได้หรือไม่ที่จะปรับใช้ L4 Load Balancer เพื่อเข้าถึงแอปพลิเคชันบนหรือด้านหน้าคลัสเตอร์เฉพาะ

ขอบคุณ.


person Patrick Hermann    schedule 21.04.2020    source แหล่งที่มา


คำตอบ (2)


ควรมีทรัพยากรทางเข้าอยู่แล้วซึ่งจะเปิดเผย UI ของเจ้าของฟาร์ม คุณสามารถแก้ไขทางเข้าและเพิ่มเส้นทาง /harbor เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยังบริการสำหรับท่าเรือ

  paths:
  - path: /harbor
    backend:
      serviceName: harbor
      servicePort: 80
person Arghya Sadhu    schedule 21.04.2020

@arghya-sadhu LB กำลังชี้ไปที่คลัสเตอร์ HA (หรือที่รู้จักกันในชื่อคลัสเตอร์ upstream/management/rke/ha) ที่ใช้งาน Rancher ไม่ใช่ Harbor ไม่แนะนำให้สร้างข้อมูลขาเข้าอื่นๆ ในคลัสเตอร์ HA นี้ นอกจากนี้ ฉันคิดว่าภาระงานของท่าเรือกำลังทำงานอยู่ในคลัสเตอร์ดาวน์สตรีม และไม่มี LB ที่ชี้ไปที่โหนดของคลัสเตอร์นี้

Patrick คุณสามารถสร้างบริการที่เปิดเผยพอร์ตแอปพลิเคชันของคุณผ่าน http และใช้กลไกพร็อกซีของ Rancher เพื่อเข้าถึง UI ของแอปของคุณผ่าน Rancher URL หากคุณเปิดใช้งานการตรวจสอบในการตั้งค่าของคุณ คุณสามารถติดตามวิธีการเปิดเผย Grafana UI ผ่านกลไกนี้ได้

หลังจากสร้างบริการแล้ว คุณสามารถค้นหาข้อมูล URL ได้โดยใช้คำสั่งต่อไปนี้:

kubectl -n <your_app_namespace> cluster-info
# or
kubectl cluster-info -A

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

URL ตัวอย่างของ Grafana:

https://<rancher-fqdn>/k8s/clusters/<cluster-id>/api/v1/namespaces/cattle-prometheus/services/http:access-grafana:80
person leodotcloud    schedule 22.04.2020
comment
สวัสดีลีโอ แต่ฉันคิดว่าวิธีนี้ไม่ได้ช่วยฉันที่นี่ เพราะถ้าลองตามตัวอย่าง ฉันต้องลงชื่อเข้าใช้ rancher เพื่อเข้าถึง URL ฉันต้องการเปิดเผยแอปพลิเคชันในเครือข่ายของฉันโดยไม่มีระบบหรือผู้ใช้ให้ล็อกอินเข้าสู่ rancher ui.. ฉันต้องการปรับใช้แอปพลิเคชันเช่น harbor เฉพาะบนคลัสเตอร์ดาวน์สตรีมเท่านั้น แต่ฉันยังคงสงสัยว่าจะทำอย่างไรใน prem ด้วย ingress..nodeport ทำงานได้อย่างน้อย w/ Chartmuseum เป็นต้น ฉันอาจจะต้องหมุนโหลดบาลานเซอร์ nginx ด้วยชื่อโฮสต์ที่เหมาะสมต่อหน้าคลัสเตอร์ rancher ดาวน์สตรีมหรือไม่ นั่นคือวิธีที่ฉันสามารถเข้าถึง UI เจ้าของฟาร์มปศุสัตว์จากการตั้งค่าฮ่าของฉัน - person Patrick Hermann; 09.05.2020
comment
@PatrickHermann คุณพูดถูก จำเป็นต้องมีการตรวจสอบสิทธิ์จริงๆ คำตอบที่กล่าวมาข้างต้นเฉพาะกับคำถามของ OP ที่ใช้เส้นทางภายใต้ UI เจ้าของฟาร์มปศุสัตว์ LB ภายนอกตามที่คุณพูดถึง nginx จำเป็นสำหรับคลัสเตอร์ภายในองค์กร การสร้างรายการ wildcard ใน nginx ที่ชี้ไปที่โหนดของคลัสเตอร์ โดยที่รายการ wildcard DNS ที่ชี้ไปที่ LB จะให้ความยืดหยุ่นอย่างมาก แน่นอน คุณสามารถกำจัดรายการ DNS ที่ระบุแทนการใช้ไวด์การ์ดได้ - person leodotcloud; 10.05.2020