Score:1

วิธีกำหนดค่า DNS สำหรับบริการและพ็อดใน Kubernetes

ธง ru

ฉันเคยผ่านการ เอกสาร K8s บน DNS สำหรับบริการและพ็อดงานหลักที่ฉันต้องการแก้ไขคือการปรับใช้ K8s ของฉัน โหนดพอร์ต เป็นประเภทบริการ ความหมาย ฉันใช้ที่อยู่ IP ภายนอกจากโหนดเพื่อแสดงบริการไปยังอินเทอร์เน็ต เมื่อฉันทำเช่นนี้ ที่อยู่ IP ของฉันกำลังถูกเปิดเผยและต้องการมีชื่อโฮสต์ [ ชื่อ DNS] มากกว่า จากเอกสารที่ลิงก์ด้านบน ฉันไม่เข้าใจแนวคิดมากนักเนื่องจากฉันยังใหม่กับ K8

ฉันได้ตั้งค่า Ingress Controller จาก NGINX สำหรับ Bare Metal K8s เนื่องจากผู้ให้บริการระบบคลาวด์ของฉันไม่มีบริการโหลดบาลานซ์

ดังนั้นคำถามของฉันคือ: ฉันจะตั้งค่า ExternalDNS ในคลัสเตอร์ K8 ของฉันได้อย่างไร

เพื่อจุดประสงค์ในการอ้างอิง นี่คือทรัพยากรของฉันภายในคลัสเตอร์ K8s

เนมสเปซ
ชื่อ สถานะ อายุ
เริ่มต้น Active 3d12h
ingress-nginx ใช้งาน 5h53m
kube-node-lease Active 3d12h
kube-สาธารณะ ใช้งาน 3d12h
ระบบ kube Active 3d12h

โดยพื้นฐานแล้ว ฉันมีการปรับใช้ทั้งหมดของฉันภายใน ค่าเริ่มต้น เนมสเปซ

kubectl รับทั้งหมด -n เริ่มต้น

 สถานะพร้อมชื่อเริ่มอายุใหม่
pod/hello-docker-cc749b757-qfctr 1/1 วิ่ง 0 70m

ประเภทชื่อ CLUSTER-IP EXTERNAL-IP PORT(S) อายุ
บริการ/hello-docker NodePort 10.xxx.xxx.xxx <ไม่มี> 3000:30072/TCP 70m
บริการ/kubernetes ClusterIP 10.xxx.xxx.xxx <ไม่มี> 443/TCP 3d12h

ชื่อพร้อม อายุปัจจุบันที่มีอยู่
Deployment.apps/hello-docker 1/1 1 1 70 ม

ชื่อที่ต้องการ อายุพร้อมในปัจจุบัน
replicaset.apps/hello-docker-cc749b757 1 1 1 70m

และนี่คือไฟล์รายการที่ฉันมีสำหรับบริการและการปรับใช้ สวัสดีนักเทียบท่า แอป:

api เวอร์ชัน: v1
ชนิด:บริการ
ข้อมูลเมตา: 
 ชื่อ: สวัสดีนักเทียบท่า 
 ป้ายกำกับ:   
   แอพ: สวัสดีนักเทียบท่า
ข้อมูลจำเพาะ: 
 ประเภท: NodePort
 พอร์ต:
 - พอร์ต: 3000
   พอร์ตเป้าหมาย: 8000
   โปรโตคอล: TCP
   ชื่อ: http
 ตัวเลือก:
   แอพ: สวัสดีนักเทียบท่า

---
apiVersion: แอป/v1
ประเภท: การปรับใช้
ข้อมูลเมตา:
  ชื่อ: สวัสดีนักเทียบท่า
  ป้ายกำกับ:
    แอพ: สวัสดีนักเทียบท่า
ข้อมูลจำเพาะ:
  แบบจำลอง: 1
  ตัวเลือก:
    ป้ายกำกับการแข่งขัน:
      แอพ: สวัสดีนักเทียบท่า
  แม่แบบ:
    ข้อมูลเมตา:
      ป้ายกำกับ:
        แอพ: สวัสดีนักเทียบท่า
    ข้อมูลจำเพาะ:
      imagePullSecrets:
      - ชื่อ: recred
      ตู้คอนเทนเนอร์:
      - ชื่อ: สวัสดีนักเทียบท่า
        ภาพ: sebastian/hello-docker:1.1
        imagePullPolicy: เสมอ
        พอร์ต:
          - ตู้คอนเทนเนอร์พอร์ต: 8000 

การตอบรับและข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างสูง

Mikolaj S. avatar
cn flag
คุณใช้ Kubernetes เวอร์ชันใด คุณใช้การติดตั้งแบบ Bare Metal หรือผู้ให้บริการคลาวด์บางรายหรือไม่
Sebastian avatar
ru flag
@MikolajS. ฉันใช้จากผู้ให้บริการคลาวด์ พวกเขามีบทช่วยสอนสำหรับการตั้งค่า K8 เริ่มต้นด้วย Ansible และ Terraform แต่ไม่มีบริการ LB สำหรับเวอร์ชันนั้น มันคือ v1.21
Mikolaj S. avatar
cn flag
คุณมีโหนด IP พร้อมใช้งานและต้องการเขียนชื่อโดเมนหรือไม่ หากเป็นเช่นนั้น คุณควรดำเนินการนอก kubernetes ขึ้นอยู่กับผู้ให้บริการของคุณ เช่น [Amazon Route 53](https://aws.amazon.com/route53/) .
Wytrzymały Wiktor avatar
it flag
สวัสดี @เซบาสเตียน การปรับปรุงใด ๆ ?
Sebastian avatar
ru flag
@WytrzymaÅyWiktor ไม่มีอะไรน่าสนใจเลยจริงๆ เพื่อให้มันใช้งานได้ ฉันได้ตั้งค่า Cloudflare Tunnel (หรือที่เรียกว่า Argo Tunnel) ซึ่งกำหนดเส้นทางการรับส่งข้อมูลผ่านตัวควบคุมทางเข้า อุโมงค์ต้องคงอยู่ ดังนั้นฉันจึงสร้างอุโมงค์เพื่อเรียกใช้ผ่านอินสแตนซ์ VM ในระบบคลาวด์ ตอนนี้ ปัญหาคือฉันสามารถเข้าถึงชื่อโฮสต์ DNS ของฉันได้ แต่ไม่สามารถป้องกันการเข้าถึง IP โดยตรงได้
kkopczak avatar
ng flag
หากคุณทำให้มันใช้งานได้ ลองเพิ่มวิธีแก้ปัญหาของคุณเป็นคำตอบและสร้างคำถามใหม่ด้วยปัญหาปัจจุบัน
Score:1
ธง ru

ฉันทำงานนี้โดยสร้าง Cloudflare Tunnel (ก่อนหน้านี้เรียกว่า Argo Tunnel) สามารถดูเอกสารประกอบคอนฟิกูเรชันที่สมบูรณ์บนทันเนลได้ ที่นี่. ฉันหวังว่าคนที่มีปัญหาคล้ายกันจะพบว่าสิ่งนี้มีประโยชน์

โพสต์คำตอบ

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