ฉันมีคลัสเตอร์ kubernetes ในเครื่องโดยใช้ชนิด เป็นคลัสเตอร์โหนดเดียว
ในกลุ่มนี้ฉันกำลังติดตาม นี้ คำแนะนำในการตั้งค่า Vault & vault-agent-injector
หากฉันทำตามบทช่วยสอนทีละขั้นตอน ผลลัพธ์ที่ได้คือพ็อด orgchart จะล้มเหลวในการเริ่มต้น เนื่องจากยังรอให้ vault-agent sidecar เริ่มทำงาน
kubectl รับพ็อด:
NAMESPACE NAME สถานะพร้อมเริ่มอายุใหม่
dnstools เริ่มต้น 0/1 เสร็จสิ้น 0 22m
เริ่มต้น orgchart-7457f8489d-hxtqt 1/1 วิ่ง 0 26m
เริ่มต้น orgchart-798cbc6c76-4kzrl 0/2 เริ่มต้น:0/1 0 25m
ค่าเริ่มต้น vault-0 1/1 วิ่ง 0 28m
vault-agent-injector-79d479cf7d-kz67q เริ่มต้น 1/1 ทำงาน 0 28m
ระบบ kube coredns-558bd4d5db-gnxl7 1/1 วิ่ง 0 45m
ระบบ kube coredns-558bd4d5db-ph95m 1/1 วิ่ง 0 45m
kube-system etcd-kind-control-plane 1/1 วิ่ง 0 45m
kube-system kindnet-bjvzg 1/1 วิ่ง 0 45m
kube-system kube-apiserver-kind-control-plane 1/1 วิ่ง 0 45m
kube-system kube-controller-manager-kind-control-plane 1/1 วิ่ง 0 45m
ระบบ kube kube-proxy-v5545 1/1 วิ่ง 0 45m
kube-system kube-scheduler-kind-control-plane 1/1 วิ่ง 0 45m
local-path-storage local-path-provisioner-547f784dff-mp79j 1/1 วิ่ง 0 45m
kubectl รับ svc:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) อายุ
kubernetes เริ่มต้น ClusterIP 10.96.0.1 <ไม่มี> 443/TCP 44m
ห้องนิรภัยเริ่มต้น ClusterIP 10.96.42.180 <ไม่มี> 8200/TCP,8201/TCP 27m
vault-agent-injector-svc เริ่มต้น ClusterIP 10.96.156.79 <ไม่มี> 443/TCP 27m
ค่าดีฟอลต์ vault-internal ClusterIP ไม่มี <ไม่มี> 8200/TCP,8201/TCP 27m
ระบบ kube kube-dns ClusterIP 10.96.0.10 <ไม่มี> 53/UDP,53/TCP,9153/TCP 44m
kubectl อธิบาย org:
ชื่อ: orgchart-798cbc6c76-4kzrl
เนมสเปซ: ค่าเริ่มต้น
ลำดับความสำคัญ: 0
โหนด: kind-control-plane/172.18.0.2
เวลาเริ่ม: ศ. 20 ส.ค. 2564 13:07:13 +0000
ป้ายกำกับ: app=orgchart
ฝักแม่แบบแฮช = 798cbc6c76
คำอธิบายประกอบ: vault.hashicorp.com/agent-inject: จริง
vault.hashicorp.com/agent-inject-secret-database-config.txt: ภายใน/ข้อมูล/ฐานข้อมูล/config
vault.hashicorp.com/agent-inject-status: ฉีดแล้ว
vault.hashicorp.com/role: แอปภายใน
สถานะ: รอดำเนินการ
ไอพี: 10.244.0.12
IP:
ไอพี: 10.244.0.12
ควบคุมโดย: ReplicaSet/orgchart-798cbc6c76
คอนเทนเนอร์เริ่มต้น:
vault-agent-init:
รหัสตู้คอนเทนเนอร์: ตู้คอนเทนเนอร์://d7dc0c9d089a1e59d85ac16a422a5195f5e7026a5c98a004d5e6a6a576900119
รูปภาพ: hashicorp/vault:1.8.0
รหัสรูปภาพ: docker.io/hashicorp/vault@sha256:54d12f84c0bfbed57d2d2e1d89099540c5ccb4e6c3b2b0a123b82dab12c99e75
พอร์ต: <ไม่มี>
พอร์ตโฮสต์: <ไม่มี>
สั่งการ:
/ถัง/sh
-ec
อาร์กิส:
echo ${VAULT_CONFIG?} | base64 -d > /home/vault/config.json && ตัวแทน vault -config=/home/vault/config.json
รัฐ: วิ่ง
เริ่ม: ศุกร์ 20 ส.ค. 2021 13:07:14 +0000
พร้อม: เท็จ
เริ่มนับใหม่: 0
ขีดจำกัด:
ซีพียู: 500 ม
หน่วยความจำ: 128Mi
คำขอ:
ซีพียู: 250 ม
หน่วยความจำ: 64Mi
สิ่งแวดล้อม:
VAULT_LOG_LEVEL: ข้อมูล
VAULT_LOG_FORMAT: มาตรฐาน
VAULT_CONFIG: <ข้อมูลปกปิด>
ภูเขา:
/home/vault จาก home-init (rw)
/var/run/secrets/kubernetes.io/serviceaccount จาก kube-api-access-lx52m (ro)
/vault/secrets จาก vault-secrets (rw)
ตู้คอนเทนเนอร์:
แผนผังองค์กร:
รหัสคอนเทนเนอร์:
ภาพ: jweissig/app:0.0.1
รหัสรูปภาพ:
พอร์ต: <ไม่มี>
พอร์ตโฮสต์: <ไม่มี>
รัฐ: กำลังรอ
เหตุผล: PodInitializing
พร้อม: เท็จ
เริ่มนับใหม่: 0
สภาพแวดล้อม: <ไม่มี>
ภูเขา:
/var/run/secrets/kubernetes.io/serviceaccount จาก kube-api-access-lx52m (ro)
/vault/secrets จาก vault-secrets (rw)
ตัวแทนห้องนิรภัย:
รหัสคอนเทนเนอร์:
รูปภาพ: hashicorp/vault:1.8.0
รหัสรูปภาพ:
พอร์ต: <ไม่มี>
พอร์ตโฮสต์: <ไม่มี>
สั่งการ:
/ถัง/sh
-ec
อาร์กิส:
echo ${VAULT_CONFIG?} | base64 -d > /home/vault/config.json && ตัวแทน vault -config=/home/vault/config.json
รัฐ: กำลังรอ
เหตุผล: PodInitializing
พร้อม: เท็จ
เริ่มนับใหม่: 0
ขีดจำกัด:
ซีพียู: 500 ม
หน่วยความจำ: 128Mi
คำขอ:
ซีพียู: 250 ม
หน่วยความจำ: 64Mi
สิ่งแวดล้อม:
VAULT_LOG_LEVEL: ข้อมูล
VAULT_LOG_FORMAT: มาตรฐาน
VAULT_CONFIG: <ข้อมูลปกปิด>
ภูเขา:
/home/vault จาก home-sidecar (rw)
/var/run/secrets/kubernetes.io/serviceaccount จาก kube-api-access-lx52m (ro)
/vault/secrets จาก vault-secrets (rw)
เงื่อนไข:
พิมพ์สถานะ
เริ่มต้นเป็นเท็จ
พร้อมเท็จ
ตู้คอนเทนเนอร์พร้อมเป็นเท็จ
PodScheduled จริง
ปริมาณ:
kube-api-เข้าถึง-lx52m:
ประเภท: Projected (วอลุ่มที่มีข้อมูลที่ฉีดจากหลายแหล่ง)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <ไม่มี>
DownwardAPI: จริง
หน้าแรกเริ่มต้น:
ประเภท: EmptyDir (ไดเร็กทอรีชั่วคราวที่แชร์อายุการใช้งานของพ็อด)
สื่อ: หน่วยความจำ
SizeLimit: <unset>
รถข้างบ้าน:
ประเภท: EmptyDir (ไดเร็กทอรีชั่วคราวที่แชร์อายุการใช้งานของพ็อด)
สื่อ: หน่วยความจำ
SizeLimit: <unset>
ความลับห้องนิรภัย:
ประเภท: EmptyDir (ไดเร็กทอรีชั่วคราวที่แชร์อายุการใช้งานของพ็อด)
สื่อ: หน่วยความจำ
SizeLimit: <unset>
คลาส QoS: ระเบิดได้
ตัวเลือกโหนด: <ไม่มี>
ความคลาดเคลื่อน: node.kubernetes.io/not-ready:NoExecute op=มีอยู่เป็นเวลา 300 วินาที
node.kubernetes.io/unreachable:NoExecute op=มีอยู่เป็นเวลา 300 วินาที
เหตุการณ์:
พิมพ์อายุเหตุผลจากข้อความ
---- ------ ---- ---- -------
ตัวกำหนดตารางเวลาเริ่มต้น 26m ตามกำหนดเวลาปกติ มอบหมาย default/orgchart-798cbc6c76-4kzrl ให้กับ kind-control-plane เรียบร้อยแล้ว
รูปภาพคอนเทนเนอร์ kubelet ขนาด 26 ม. ที่ดึงออกมาปกติ "hashicorp/vault:1.8.0" มีอยู่แล้วในเครื่อง
สร้างปกติ 26m kubelet สร้างคอนเทนเนอร์ vault-agent-init
ปกติเริ่มต้น 26m kubelet เริ่มต้นคอนเทนเนอร์ vault-agent-init
คำเตือน DNSConfigForming 53s (x25 มากกว่า 26m) เกินขีดจำกัดบรรทัดการค้นหา kubelet เส้นทางการค้นหาบางเส้นทางถูกละไว้ บรรทัดค้นหาที่ใช้คือ: default.svc.cluster.local svc.cluster.local cluster.local <ข้อมูลปกปิด> <ข้อมูลปกปิด> < ปกปิด>
เมื่อดูในบันทึก apiserver ฉันเห็นข้อความต่อไปนี้:
E0820 13:03:55.315142 1 dispatcher.go:171] ล้มเหลวในการเรียก webhook "vault.hashicorp.com": โพสต์ "https://vault-agent-injector-svc.default.svc:443/mutate?timeout=10s" : กด tcp 10.96.156.79:443: เชื่อมต่อ: ไม่มีเส้นทางไปยังโฮสต์
และดูในบันทึก vault-agent-injector ฉันเห็นข้อความต่อไปนี้:
2021-08-20T13:03:55.887Z ตัวจัดการ [INFO]: ตัวจัดการการเริ่มต้น..
กำลังฟัง ":8080"...
2021-08-20T13:03:55.896Z [INFO] handler.auto-tls: CA ที่สร้างขึ้น
2021-08-20T13:03:55.899Z [INFO] handler.certwatcher: ได้รับบันเดิลใบรับรองที่อัปเดตแล้ว กำลังอัปเดตใบรับรอง...
2021-08-20T13:05:55.808Z ตัวจัดการ [INFO]: ได้รับคำขอแล้ว: Method=POST URL=/mutate?timeout=10s
2021-08-20T13:07:13.447Z ตัวจัดการ [INFO]: ได้รับคำขอแล้ว: Method=POST URL=/mutate?timeout=10s
2021-08-20T13:10:16.613Z ตัวจัดการ [INFO]: ได้รับคำขอแล้ว: Method=POST URL=/mutate?timeout=10s
ฉันได้กำหนดค่าคลัสเตอร์ชนิดของฉันให้สามารถใช้ MutatingAdmissionWebhooks:
ชนิด: คลัสเตอร์
รุ่น api: kind.x-k8s.io/v1alpha4
โหนด:
- บทบาท: ระนาบควบคุม
kubeadmConfigแพทช์:
- |
ประเภท: InitConfiguration
การลงทะเบียนโหนด:
kubeletExtraArgs:
ป้ายชื่อโหนด: "ingress-ready=true"
- |
ประเภท: ClusterConfiguration
apiเซิร์ฟเวอร์:
อาร์กิวเมนต์พิเศษ:
enable-admission-plugins: NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook
extraPortMappings:
- ตู้คอนเทนเนอร์พอร์ต: 80
พอร์ตโฮสต์: 8080
โปรโตคอล: TCP
- พอร์ตคอนเทนเนอร์: 443
พอร์ตโฮสต์: 8443
โปรโตคอล: TCP
เครือข่าย:
apiServerAddress: "127.0.0.1"
apiServerPort: 443
ฉันสามารถใช้ขั้นตอนต่อไปใดได้บ้างเพื่อช่วยแก้ปัญหานี้
ฉันคิดว่านี่เป็นปัญหากับการค้นหา DNS สำหรับ vault-agent-injector-svc แต่ฉันไม่แน่ใจว่าจะเริ่มต้นจากที่ใด
ขอบคุณ,
แม็กซ์ ซาร์เจนท์