Score:0

คลัสเตอร์ etcd ที่มี DNS Discovery - ไคลเอ็นต์: คลัสเตอร์ etcd ไม่พร้อมใช้งานหรือกำหนดค่าไม่ถูกต้อง ข้อผิดพลาด: รหัสสถานะที่ไม่คาดคิด 404; ขุด SRV ส่งคืนค่าว่าง

ธง cn

ฉันกำลังกำหนดค่า etcd เพื่อบู๊ตสแตรปโดยใช้การค้นหา DNS แต่มันบอกว่าเซิร์ฟเวอร์มีการกำหนดค่าผิดและดูเหมือนว่าจะสอบถามพอร์ตผิด และบันทึก SRV ก็ดูไม่ถูกต้อง

โปรดตรวจสอบด้านล่างและดูคำถามของฉันที่ด้านล่างของโพสต์นี้


ข้อมูลจำเพาะ

โดเมนราก: etcd.ksone

บันทึก SRV ของเซิร์ฟเวอร์:

_etcd-server-ssl._tcp.etcd.ksone SRV แบบง่าย -   
0 0 2380 etcd2.ksone
0 0 2380 etcd1.ksone 

บันทึก SRV ของลูกค้า:

_etcd-client-ssl._tcp.etcd.ksone SRV แบบง่าย -   
0 0 2379 etcd2.ksone
0 0 2379 etcd1.ksone

ใช้ TLS: จริง

ระบบปฏิบัติการ:

[fedora@ip-10-0-0-245 ~]$ ชื่อ
ลีนุกซ์
[fedora@ip-10-0-0-245 ~]$ cat /etc/os-release
NAME=เฟดอร่า
VERSION="24 (ทเวนตี้โฟร์)"
ID=เฟดอร่า
VERSION_ID=24
PRETTY_NAME="Fedora 24 (ทเวนตี้โฟร์)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:24"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="เฟดอร่า"
REDHAT_BUGZILLA_PRODUCT_VERSION=24
REDHAT_SUPPORT_PRODUCT="เฟดอร่า"
REDHAT_SUPPORT_PRODUCT_VERSION=24
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy

รุ่น etcdctl

[fedora@ip-10-0-0-245 ~]$ etcdctl --version
etcdctl เวอร์ชั่น 2.2.5

รายชื่อสมาชิก

ฉันพยายามแสดงรายชื่อสมาชิกโดยใช้คำสั่งด้านล่างและได้รับข้อผิดพลาดดังต่อไปนี้:

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --discovery- srv etcd.ksone --debug รายชื่อสมาชิก

เริ่มซิงค์คลัสเตอร์โดยใช้จุดสิ้นสุด (https://etcd1.ksone.:2380,https://etcd2.ksone.:2380)
คำสั่ง cURL: curl -X GET https://etcd1.ksone.:2380/v2/members
รับจุดสิ้นสุด () หลังจากซิงค์
จุดสิ้นสุดของคลัสเตอร์:
คำสั่ง cURL: curl -X GET /v2/members
ลูกค้า: คลัสเตอร์ etcd ไม่พร้อมใช้งานหรือกำหนดค่าไม่ถูกต้อง

สุขภาพคลัสเตอร์

ในทำนองเดียวกัน ฉันสามารถค้นหาคลัสเตอร์สุขภาพด้วยคำสั่งและเอาต์พุตต่อไปนี้:

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --discovery- srv etcd.ksone --debug คลัสเตอร์สุขภาพ

จุดสิ้นสุดของคลัสเตอร์: https://etcd1.ksone.:2380, https://etcd2.ksone.:2380
===> หมายเหตุ: มันพยายาม (ไม่ถูกต้อง?) บนพอร์ต 2380 (เซิร์ฟเวอร์) คำสั่ง cURL: curl -X GET https://etcd1.ksone.:2380/v2/members
คลัสเตอร์อาจไม่แข็งแรง: ล้มเหลวในการแสดงรายการสมาชิก
ข้อผิดพลาด: รหัสสถานะที่ไม่คาดคิด 404

บันทึก SRV

ฉันได้กำหนดค่าบันทึก SRV ดังนี้

  • แสดงรายการ SRV สำหรับโดเมนรูท เช่น "etcd.ksone" (ผลลัพธ์ที่คาดหวัง --> ควรแสดงบันทึก SRV แบบเต็ม แต่ไม่ส่งคืนอะไรเลย):
 ขุด +noall +answer SRV etcd.ksone

==> <คอนโซลไม่แสดงเอาต์พุต - ว่าง!>
  • แสดงรายการ SRV อย่างชัดเจนสำหรับเซิร์ฟเวอร์:
# ขุด +noall +answer SRV _etcd-server-ssl._tcp.etcd.ksone


_etcd-server-ssl._tcp.etcd.ksone 33 ใน SRV 0 0 2380 etcd2.ksone
_etcd-server-ssl._tcp.etcd.ksone 33 ใน SRV 0 0 2380 etcd1.ksone
  • แสดงรายการ SRV อย่างชัดเจนสำหรับลูกค้า:
/ # ขุด +noall +answer SRV _etcd-client-ssl._tcp.etcd.ksone


_etcd-client-ssl._tcp.etcd.ksone 300 ใน SRV 0 0 2379 etcd1.ksone
_etcd-client-ssl._tcp.etcd.ksone 300 ใน SRV 0 0 2379 etcd2.ksone

ลองใช้ปลายทางของไคลเอนต์อย่างชัดเจน (สำเร็จ แต่ไม่ได้ใช้การค้นพบ DNS จริงๆ!)

bash-4.3# etcdctl --ca-file /etc/etcd/ca.pem --key-file /etc/etcd/kubernetes-key.pem --cert-file /etc/etcd/kubernetes.pem --debug - จุดสิ้นสุด https://etcd1.ksone:2379 คลัสเตอร์สุขภาพ


จุดสิ้นสุดของคลัสเตอร์: https://etcd1.ksone:2379
คำสั่ง cURL: curl -X GET https://etcd1.ksone:2379/v2/members
สมาชิก 499073e22ac73562 มีสุขภาพแข็งแรง: ได้ผลลัพธ์สุขภาพดีจาก https://etcd1.ksone:2379
สมาชิก b98d4fc780a787fe มีสุขภาพแข็งแรง: ได้ผลสุขภาพดีจาก https://etcd2.ksone:2379
คลัสเตอร์มีสุขภาพดี

etcd การตั้งค่าบริการ

สถานะ systemctl เป็นต้น



_ etcd.บริการ - etcd
   โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/etcd.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
   ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่วันอาทิตย์ 2021-08-01 07:17:39 UTC; 1 ชม. 23 นาทีที่แล้ว
     เอกสาร: https://github.com/coreos
 PID หลัก: 2363 (ฯลฯ )
    งาน: 7 (จำกัด: 512)
   CGroup: /system.slice/etcd.service
           __2363 /usr/bin/etcd --name etcd1.ksone --discovery-srv=etcd.ksone --initial-advertise-peer-urls https://etcd1.ksone:2380 --initial-cluster-token etcd-cluster -0 --initial-cluster-state ใหม่ --advertise-client-urls https://etcd1.ksone:2379 --listen-client-urls https://etcd1.ksone:2379,http://127.0.0.1 :2379 --listen-peer-urls https://etcd1.ksone:2380 --data-dir=/var/lib/etcd/data --cert-file=/etc/etcd/kubernetes.pem --key- file=/etc/etcd/kubernetes-key.pem --peer-cert-file=/etc/etcd/kubernetes.pem --peer-key-file=/etc/etcd/kubernetes-key.pem --trusted- ca-file=/etc/etcd/ca.pem --peer-trusted-ca-file=/etc/etcd/ca.pem

01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 กลายเป็นผู้สมัครที่เทอม 41
01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 ได้รับการโหวตจาก 499073e22ac73562 ที่เทอม 41
01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 [logterm: 1, index: 2] ส่งคำขอลงคะแนนไปที่ b98d4fc780a787fe ที่เทอม 41
01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 ได้รับการโหวตจาก b98d4fc780a787fe ที่เทอม 41
01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 [q:2] ได้รับ 2 โหวตและ 0 โหวตปฏิเสธ
01 ส.ค. 07:18:32 ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: 499073e22ac73562 กลายเป็นผู้นำในเทอมที่ 41
01 ส.ค. 07:18:32 น. ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: raft.node: 499073e22ac73562 เลือกผู้นำ 499073e22ac73562 ในระยะที่ 41
01 ส.ค. 07:18:32 น. ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: เผยแพร่ {Name:etcd1.ksone ClientURLs:[https://etcd1.ksone:2379 ]} ไปยังคลัสเตอร์ 1c370848b4697ef2
1 ส.ค. 07:18:32 น. ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: ตั้งค่าเวอร์ชันคลัสเตอร์เริ่มต้นเป็น 2.2
1 ส.ค. 07:18:32 น. ip-10-0-0-245.eu-west-1.compute.internal etcd[2363]: ตั้งค่าเวอร์ชันคลัสเตอร์เริ่มต้นเป็น 2.2

สรุปข้อสังเกต

  • กลไกการค้นหาบนไคลเอ็นต์ etcd ไม่ทำงาน ดังที่เห็นได้จากข้อผิดพลาดข้างต้น เช่น คลัสเตอร์ไม่พร้อมใช้งานหรือกำหนดค่าไม่ถูกต้อง หรือ ``ข้อผิดพลาด: รหัสสถานะที่ไม่คาดคิด 404```
  • บันทึกการแก้ไขข้อบกพร่องดูเหมือนจะระบุว่ากำลังพยายามเชื่อมต่อกับพอร์ตเพียร์ เช่น 2380 แทนที่จะเป็นพอร์ตไคลเอ็นต์ เช่น 2379
  • ฉันสามารถทำให้มันใช้งานได้โดยตั้งค่าสวิตช์ปลายทางเป็นพอร์ต 2379 อย่างชัดเจน
  • ข้อความค้นหา SRV บนโดเมนรูทดูเหมือนจะทำงานไม่ถูกต้อง กล่าวคือ มันส่งคืนผลลัพธ์ว่างเปล่า (ไม่มีเอาต์พุต)
  • สถานะ systemctl เป็นต้น ดูเหมือนว่าจะระบุว่าปลายทางได้รับการกำหนดค่าอย่างถูกต้องสำหรับคำสั่งเริ่มต้น etcd

คำถาม

  • ฉันจะสอบถามเรคคอร์ดอย่างถูกต้องได้อย่างไร และอะไรคือปัญหา (ถ้ามี) กับการกำหนดค่า dns SRV
  • ทำไม etcdctl --การค้นพบ-srv สวิตช์ไม่ทำงาน - ฉันคาดหวังว่าจะพบพอร์ตที่ถูกต้อง เช่น 2379 และไม่รายงานข้อผิดพลาดใดๆ
  • etcd ควรจะโหลดบาลานซ์หรือไม่? มีจุดสิ้นสุดเดียวที่ฉันสามารถค้นหาได้หรือไม่ [ทำไม] ขึ้นอยู่กับลูกค้าที่จะเลือกปลายทางหรือไม่ ฉันควรกำหนดค่าโหลดบาลานเซอร์ไว้ด้านบนของอุปกรณ์ etcd ของฉันหรือไม่

ขอบคุณมาก!

Michael Hampton avatar
cz flag
หยุดสิ่งที่คุณกำลังทำอยู่และเริ่มต้นใหม่ด้วยการกระจาย OS ที่รองรับ

โพสต์คำตอบ

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