ฉันติดตาม Kelsey Hightower's Kubernetes วิธีที่ยาก ซึ่งจะแนะนำคุณเกี่ยวกับการตั้งค่าคลัสเตอร์ k8s ด้วยตนเอง
นี่คือ ไม่ ทำงานบน minikube - กำลังทำงานบน VPS ระยะไกล
ฉันอยู่ในขั้นตอนที่ฉันตั้งค่าระนาบควบคุม k8s
อย่างไรก็ตามเมื่อพยายามเรียกใช้การตรวจสุขภาพ kube-apiserver
ฉันได้รับสิ่งต่อไปนี้:
$ kubectl ข้อมูลคลัสเตอร์ --kubeconfig admin.kubeconfig
หากต้องการดีบักและวินิจฉัยปัญหาคลัสเตอร์เพิ่มเติม ให้ใช้ 'kubectl cluster-info dump'
การเชื่อมต่อกับเซิร์ฟเวอร์ 127.0.0.1:6443 ถูกปฏิเสธ - คุณระบุโฮสต์หรือพอร์ตที่ถูกต้องหรือไม่
ฉันไม่ค่อยแน่ใจว่าจะเริ่มดีบั๊กจากตรงไหนดี
การกำหนดค่า
บริการ k8s ทั้ง 3 แห่งกำลังทำงานอยู่:
สถานะ systemctl kube-apiserver kube-controller-manager kube-scheduler etcd
# => ผลตอบแทนทั้ง 4 รายการ: "ใช้งานอยู่ (กำลังทำงาน)"
เดอะ kube-apiserver
ถูกกำหนดค่าให้เริ่มต้นด้วย ระบบ
:
$ cat /etc/systemd/system/kube-apiserver.service
[หน่วย]
คำอธิบาย=เซิร์ฟเวอร์ API ของ Kubernetes
เอกสาร=https://github.com/kubernetes/kubernetes
[บริการ]
ExecStart=/usr/local/bin/kube-apiserver \
--ที่อยู่โฆษณา=$INTERNAL_IP_REDACTED \
--allow-privileged=true \
--apiserver-count=3 \
--audit-log-maxage=30 \
--audit-log-maxbackup=3 \
--audit-log-maxsize=100 \
--audit-log-path=/var/log/audit.log \
--authorization-mode=Node,RBAC \
--bind-address=0.0.0.0 \
--client-ca-file=/var/lib/kubernetes/ca.pem \
--enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota \
--etcd-cafile=/var/lib/kubernetes/ca.pem \
--etcd-certfile=/var/lib/kubernetes/kubernetes.pem \
--etcd-keyfile=/var/lib/kubernetes/kubernetes-key.pem \
--etcd-servers=https://10.240.0.10:2379,https://10.240.0.11:2379,https://10.240.0.12:2379 \
--event-ttl=1h \
--encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml \
--kubelet-certificate-authority=/var/lib/kubernetes/ca.pem \
--kubelet-client-certificate=/var/lib/kubernetes/kubernetes.pem \
--kubelet-client-key=/var/lib/kubernetes/kubernetes-key.pem \
--runtime-config='api/all=true' \
--service-account-key-file=/var/lib/kubernetes/service-account.pem \
--service-account-signing-key-file=/var/lib/kubernetes/service-account-key.pem \
--service-account-issuer=https://$EXTERNAL_IP_REDACTED:6443 \
--service-cluster-ip-range=10.32.0.0/24 \
--service-node-port-range=30000-32767 \
--tls-cert-file=/var/lib/kubernetes/kubernetes.pem \
--tls-private-key-file=/var/lib/kubernetes/kubernetes-key.pem \
--v=2
รีสตาร์ท = เมื่อล้มเหลว
รีสตาร์ทวินาที=5
[ติดตั้ง]
WantedBy=multi-user.target
เดอะ kube-apiserver
กำลังทำงานและฟังบนพอร์ตอย่างแน่นอน :6443
$ lsof -iTCP -sTCP:LISTEN -n -P | เกรป 6443
kube-apis 989442 รูท 7u IPv6 9345693 0t0 TCP *:6443 (ฟัง)
ที่นี่คือ admin.kubeconfig
ไฟล์ที่กำหนดค่าให้ค้นหาคลัสเตอร์ที่ 127.0.0.1:6443
api เวอร์ชัน: v1
คลัสเตอร์:
- กลุ่ม:
ข้อมูลผู้ออกใบรับรอง: LS0tL...
เซิร์ฟเวอร์: https://127.0.0.1:6443
ชื่อ: kubernetes-the-hard-way
บริบท:
- บริบท:
คลัสเตอร์: kubernetes-the-hard-way
ผู้ใช้: ผู้ดูแลระบบ
ชื่อ: ค่าเริ่มต้น
บริบทปัจจุบัน: ค่าเริ่มต้น
ประเภท: การกำหนดค่า
ค่ากำหนด: {}
ผู้ใช้:
- ชื่อ: ผู้ดูแลระบบ
ผู้ใช้:
ข้อมูลใบรับรองลูกค้า: LS0tLS1CRU...
ลูกค้าคีย์ข้อมูล: LS0tLS1C....
มีการจัดเตรียมใบรับรอง SSL (สร้างขึ้นก่อนหน้านี้ในบทช่วยสอน Kubernetes)
$ ls -hlt /var/lib/kubernetes/ca*
-rw------- 1 รูทรูท 1.7K 18 ธ.ค. 00:56 /var/lib/kubernetes/ca-key.pem
-rw-r--r-- 1 รูทรูท 1.3K 18 ธ.ค. 00:56 /var/lib/kubernetes/ca.pem
สุดท้าย NGINX ได้รับการกำหนดค่าให้เปลี่ยนเส้นทาง พอร์ต 80
การจราจรไปยังจุดสิ้นสุดการตรวจสุขภาพ
$ cat /etc/nginx/sites-available/kubernetes.default.svc.cluster.local
เซิร์ฟเวอร์ {
ฟัง 80;
server_name kubernetes.default.svc.cluster.local;
สถานที่ /healthz {
proxy_pass https://127.0.0.1:6443/healthz;
proxy_ssl_trusted_certificate /var/lib/kubernetes/ca.pem;
}
}
ดังที่กล่าวไว้ข้างต้น ฉันไม่เห็นจริงๆ ว่ามีอะไรผิดปกติและ ฉันไม่รู้ว่าจะเริ่มตรวจสอบที่ไหนอีก.
ขอขอบคุณ!