คำถามติดแท็ก kubernetes

KUBERNETES คำถามต้องเกี่ยวข้องกับนักพัฒนา Kubernetes เป็นแพลตฟอร์มโอเพนซอร์ซที่ออกแบบมาเพื่อการปรับใช้การปรับขนาดและการทำงานของแอพพลิเคชันคอนเทนเนอร์โดยอัตโนมัติในหลาย ๆ โฮสต์และ / หรือคลาวด์ คำถามเกี่ยวกับการกำหนดค่ากลุ่มควรถามใน https://serverfault.com

6
Kubernet ทำอย่างไรให้ Deployment อัปเดตอิมเมจ
ฉันมีการปรับใช้กับพ็อดเดี่ยวด้วยอิมเมจนักเทียบท่าที่กำหนดเองของฉันเช่น: containers: - name: mycontainer image: myimage:latest ในระหว่างการพัฒนาฉันต้องการพุชเวอร์ชันล่าสุดใหม่และอัปเดตการปรับใช้ ไม่พบวิธีการทำเช่นนั้นโดยไม่ได้กำหนดแท็ก / เวอร์ชันอย่างชัดเจนและเพิ่มขึ้นสำหรับแต่ละบิลด์และทำ kubectl set image deployment/my-deployment mycontainer=myimage:1.9.1
132 docker  kubernetes 

7
ความแตกต่างระหว่าง targetPort และพอร์ตในนิยามของบริการ Kubernetes
Kubernetes ServiceสามารถมีtargetPortและportในนิยามบริการ: kind: Service apiVersion: v1 metadata: name: my-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 อะไรคือความแตกต่างระหว่างportและtargetPort?
132 service  kubernetes  port 

9
จะลงชื่อเข้าใช้ kubernetes dashboard ได้อย่างไร?
ฉันเพิ่งอัปเกรด kubeadm และ kubelet เป็น v1.8.0 และติดตั้งแผงควบคุมต่อไปนี้อย่างเป็นทางการเอกสาร $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml หลังจากนั้นฉันเริ่มแดชบอร์ดโดยการเรียกใช้ $ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$' โชคดีที่ฉันสามารถเข้าถึงแดชบอร์ดผ่านhttp://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ ฉันถูกเปลี่ยนเส้นทางไปยังหน้าล็อกอินแบบนี้ซึ่งฉันไม่เคยพบมาก่อน ดูเหมือนว่ามีสองวิธีในการตรวจสอบสิทธิ์ ฉันพยายามอัปโหลด/etc/kubernetes/admin.confเป็น kubeconfig แต่ล้มเหลว จากนั้นฉันพยายามใช้โทเค็นที่ได้รับจากkubeadm token listการลงชื่อเข้าใช้ แต่ล้มเหลวอีกครั้ง คำถามคือฉันจะลงชื่อเข้าใช้แดชบอร์ดได้อย่างไร ดูเหมือนว่าพวกเขาเพิ่มกลไกการรักษาความปลอดภัยมากขึ้นกว่าเดิม ขอบคุณ

4
บริการที่อยู่ในเนมสเปซอื่น
ฉันพยายามหาวิธีกำหนดบริการในเนมสเปซเดียวที่ลิงก์ไปยัง Pod ที่ทำงานในเนมสเปซอื่น ฉันรู้ว่าคอนเทนเนอร์ใน Pod ที่ทำงานอยู่namespaceAสามารถเข้าถึงที่serviceXกำหนดnamespaceBโดยการอ้างอิงใน DNS คลัสเตอร์เป็นserviceX.namespaceB.svc.cluster.localแต่ฉันไม่อยากมีรหัสภายในคอนเทนเนอร์ที่จำเป็นต้องรู้เกี่ยวกับตำแหน่งของserviceX . นั่นคือฉันต้องการให้โค้ดค้นหาserviceXจากนั้นจึงจะสามารถเข้าถึงได้ เอกสาร Kubernetesแสดงให้เห็นว่าเป็นไปได้ มันบอกว่าหนึ่งในเหตุผลที่คุณจะกำหนดบริการโดยไม่มีตัวเลือกก็คือคุณต้องการที่จะชี้ให้บริการของคุณเพื่อให้บริการใน Namespace อื่นหรือในคลัสเตอร์อื่น นั่นชี้ให้ฉันทราบว่าฉันควร: กำหนดserviceXบริการในnamespaceAโดยไม่มีตัวเลือก (เนื่องจาก POD ที่ฉันต้องการเลือกไม่อยู่ในnamespaceA) กำหนดบริการ (ซึ่งฉันเรียกว่าserviceX) ในnamespaceBแล้ว กำหนดวัตถุปลายทางในnamespaceAการชี้ไปในserviceXnamespaceB นี่เป็นขั้นตอนที่สามที่ฉันไม่สามารถทำได้สำเร็จ ก่อนอื่นฉันลองกำหนดวัตถุปลายทางด้วยวิธีนี้: kind: Endpoints apiVersion: v1 metadata: name: serviceX namespace: namespaceA subsets: - addresses: - targetRef: kind: Service namespace: namespaceB name: serviceX apiVersion: v1 ports: - …
125 kubernetes 

11
ฉันจะให้คอนเทนเนอร์ทำงานบน Kubernetes ได้อย่างไร
ตอนนี้ฉันกำลังพยายามเรียกใช้คอนเทนเนอร์ธรรมดาด้วยเชลล์ (/ bin / bash) บนคลัสเตอร์ Kubernetes ฉันคิดว่ามีวิธีที่จะทำให้คอนเทนเนอร์ทำงานบน Docker container โดยใช้pseudo-ttyและแยกตัวเลือก ( -tdตัวเลือกdocker runคำสั่ง) ตัวอย่างเช่น, $ sudo docker run -td ubuntu:latest มีตัวเลือกเช่นนี้ใน Kubernetes หรือไม่ ฉันได้ลองเรียกใช้คอนเทนเนอร์โดยใช้kubectl run-containerคำสั่งเช่น: kubectl run-container test_container ubuntu:latest --replicas=1 แต่คอนเทนเนอร์จะออกไปสองสามวินาที (เช่นเดียวกับการเรียกใช้ด้วยdocker runคำสั่งโดยไม่มีตัวเลือกที่ฉันกล่าวถึงข้างต้น) และ ReplicationController เรียกใช้ซ้ำอีกครั้ง มีวิธีทำให้คอนเทนเนอร์ทำงานบน Kubernetes เหมือน-tdตัวเลือกในdocker runคำสั่งหรือไม่


13
วิธีสลับคลัสเตอร์ kubectl ระหว่าง gcloud และ minikube
ฉันมี Kubernetes ทำงานได้ดีในสองสภาพแวดล้อมที่แตกต่างกันคือในสภาพแวดล้อมท้องถิ่นของฉัน (MacBook ที่ใช้ minikube) และใน Container Engine ของ Google (GCE, Kubernetes บน Google Cloud) ฉันใช้ MacBook / สภาพแวดล้อมในพื้นที่เพื่อพัฒนาและทดสอบไฟล์ YAML ของฉันจากนั้นเมื่อเสร็จสิ้นให้ลองใช้ GCE ขณะนี้ฉันจำเป็นต้องทำงานกับแต่ละสภาพแวดล้อมทีละรายการ: ฉันต้องการแก้ไขไฟล์ YAML ในสภาพแวดล้อมภายในเครื่องของฉันและเมื่อพร้อมแล้ว (git) จะโคลนไฟล์เหล่านั้นไปยังสภาพแวดล้อม GCE จากนั้นจึงใช้ / ปรับใช้ นี่เป็นกระบวนการที่ค่อนข้างยุ่งยาก ตามหลักการแล้วฉันต้องการใช้ kubectl จาก Macbook ของฉันเพื่อสลับไปมาระหว่างสภาพแวดล้อม minikube หรือ GCE Kubernetes ในพื้นที่ได้อย่างง่ายดายและเพื่อกำหนดตำแหน่งที่จะใช้ไฟล์ YAML ได้อย่างง่ายดาย มีวิธีง่ายๆในการสลับบริบทเพื่อทำสิ่งนี้หรือไม่?

13
ฉันจะรับบันทึกจากพ็อดทั้งหมดของตัวควบคุมการจำลองแบบ Kubernetes ได้อย่างไร
การรันkubectl logsแสดง stderr / stdout ของ Kubernetes container หนึ่งคอนเทนเนอร์ ฉันจะรับ stderr / stdout รวมของชุดพ็อดได้อย่างไรโดยเฉพาะที่สร้างโดยตัวควบคุมการจำลองแบบบางตัว

6
จะแก้จุดบกพร่อง“ ImagePullBackOff” ได้อย่างไร
ทันใดนั้นฉันไม่สามารถปรับใช้ภาพบางภาพที่สามารถปรับใช้มาก่อนได้ ฉันได้รับสถานะพ็อดดังต่อไปนี้: [root@webdev2 origin]# oc get pods NAME READY STATUS RESTARTS AGE arix-3-yjq9w 0/1 ImagePullBackOff 0 10m docker-registry-2-vqstm 1/1 Running 0 2d router-1-kvjxq 1/1 Running 0 2d แอปพลิเคชันจะไม่เริ่มทำงาน พ็อดไม่ได้พยายามเรียกใช้คอนเทนเนอร์ Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326จากหน้าเหตุการณ์ที่ผมได้มี docker pullฉันได้ยืนยันว่าผมสามารถดึงภาพที่มีแท็กที่มี ฉันได้ตรวจสอบบันทึกของคอนเทนเนอร์สุดท้ายแล้วด้วย มันถูกปิดด้วยเหตุผลบางประการ ฉันคิดว่าอย่างน้อยพ็อดควรลองรีสตาร์ท ฉันไม่มีความคิดที่จะแก้ไขปัญหา ตรวจสอบอะไรเพิ่มเติมได้บ้าง

8
รีสตาร์ทพ็อดเมื่อมีการอัปเดต configmap ใน Kubernetes?
ฉันจะรีสตาร์ท Kubernetes พ็อดและพ็อดที่เชื่อมโยงกับการปรับใช้โดยอัตโนมัติได้อย่างไรเมื่อมีการเปลี่ยนแปลง / อัปเดต Configmap ฉันรู้ว่ามีการพูดคุยเกี่ยวกับความสามารถในการรีสตาร์ทพ็อดโดยอัตโนมัติเมื่อแมปการกำหนดค่าเปลี่ยนไป แต่จากความรู้ของฉันสิ่งนี้ยังไม่มีใน Kubernetes 1.2 ดังนั้นสิ่งที่ (ฉันคิดว่า) ฉันต้องการทำคือ "การรีสตาร์ทแบบกลิ้ง" ของทรัพยากรการปรับใช้ที่เกี่ยวข้องกับพ็อดที่ใช้แมป config เป็นไปได้หรือไม่และถ้าเป็นเช่นนั้นจะบังคับให้รีสตาร์ทการปรับใช้ใน Kubernetes โดยไม่เปลี่ยนแปลงอะไรในเทมเพลตจริง ขณะนี้เป็นวิธีที่ดีที่สุดหรือมีทางเลือกอื่นที่ดีกว่านี้

7
สภาพแวดล้อมที่หลากหลาย (การจัดเตรียมการควบคุมคุณภาพการผลิต ฯลฯ ) ด้วย Kubernetes
อะไรคือแนวทางปฏิบัติที่ดีสำหรับ K8S ในการจัดการสภาพแวดล้อมที่หลากหลาย (QA, Staging, Production, Dev ฯลฯ ) ตัวอย่างเช่นสมมติว่าทีมกำลังทำงานกับผลิตภัณฑ์ที่ต้องใช้ API สองสามตัวพร้อมกับแอปพลิเคชันส่วนหน้า โดยปกติสิ่งนี้จะต้องมีอย่างน้อย 2 สภาพแวดล้อม: การจัดเตรียม: สำหรับการทำซ้ำ / การทดสอบและการตรวจสอบความถูกต้องก่อนปล่อยไปยังไคลเอนต์ การผลิต: นี่คือสภาพแวดล้อมที่ไคลเอนต์เข้าถึงได้ ควรมีคุณสมบัติที่เสถียรและผ่านการทดสอบอย่างดี ดังนั้นสมมติว่าทีมกำลังใช้ Kubernetes แนวทางปฏิบัติที่ดีในการจัดสภาพแวดล้อมเหล่านี้คืออะไร จนถึงตอนนี้เราได้พิจารณาสองทางเลือก: ใช้คลัสเตอร์ K8s สำหรับแต่ละสภาพแวดล้อม ใช้คลัสเตอร์ K8 เพียงคลัสเตอร์เดียวและเก็บไว้ในเนมสเปซที่ต่างกัน (1) ดูเหมือนเป็นตัวเลือกที่ปลอดภัยที่สุดเนื่องจากช่วยลดความเสี่ยงของความผิดพลาดของมนุษย์ที่อาจเกิดขึ้นและความล้มเหลวของเครื่องจักรซึ่งอาจทำให้สภาพแวดล้อมการผลิตตกอยู่ในอันตราย อย่างไรก็ตามสิ่งนี้มาพร้อมกับต้นทุนของเครื่องจักรหลักที่มากขึ้นและต้นทุนในการจัดการโครงสร้างพื้นฐานที่มากขึ้น (2) ดูเหมือนว่าจะทำให้โครงสร้างพื้นฐานและการจัดการการปรับใช้ง่ายขึ้นเนื่องจากมีคลัสเตอร์เดียว แต่ทำให้เกิดคำถามสองสามข้อเช่น: เราจะแน่ใจได้อย่างไรว่าความผิดพลาดของมนุษย์อาจส่งผลกระทบต่อสภาพแวดล้อมการผลิต จะแน่ใจได้อย่างไรว่าโหลดสูงในสภาพแวดล้อมการจัดเตรียมจะไม่ทำให้ประสิทธิภาพการทำงานสูญเสียไปในสภาพแวดล้อมการผลิต อาจมีข้อกังวลอื่น ๆ ดังนั้นฉันจึงติดต่อชุมชน K8s บน StackOverflow เพื่อทำความเข้าใจให้ดีขึ้นว่าผู้คนรับมือกับความท้าทายประเภทนี้อย่างไร
121 kubernetes 

12
ฉันจะเข้าถึง API Kubernetes จากภายใน pod container ได้อย่างไร
ผมเคยดัดผมได้ https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1beta3/namespaces/default/ เป็น URL พื้นฐานของฉัน แต่ใน kubernetes 0.18.0 ทำให้ฉัน "ไม่ได้รับอนุญาต" สิ่งที่แปลกคือถ้าฉันใช้ที่อยู่ IP ภายนอกของเครื่อง API ( http://172.17.8.101:8080/api/v1beta3/namespaces/default/) มันก็ใช้ได้ดี
119 kubernetes 

5
วิธีที่ดีที่สุดในการแชร์ / ต่อเชื่อมไฟล์หนึ่งไฟล์ลงในพ็อดคืออะไร?
ฉันกำลังพิจารณาใช้ความลับในการเมานต์ไฟล์เดียว แต่ดูเหมือนว่าคุณสามารถเมานต์ไดเร็กทอรีที่จะเขียนทับเนื้อหาอื่น ๆ ทั้งหมดเท่านั้น ฉันจะแชร์ไฟล์ config ไฟล์เดียวโดยไม่ต้องติดตั้งไดเร็กทอรีได้อย่างไร
118 kubernetes 

12
รับ YAML สำหรับบริการ Kubernetes ที่ทำให้ใช้งานได้ไหม
ฉันพยายามที่จะปรับใช้ app ของฉันที่จะKubernetesทำงานในGoogle คอนเทนเนอร์เครื่องยนต์ app ที่สามารถพบได้ที่: https://github.com/Industrial/docker-znc Dockerfileสร้างเป็นภาพบนGoogle คอนเทนเนอร์ Registry ฉันปรับใช้แอปในKubernetesผ่านปุ่ม + แล้ว ฉันไม่มี YAML สำหรับสิ่งนี้ ฉันได้ใส่ความลับในKubernetesสำหรับไฟล์ PEM ที่แอปต้องการ ฉันจะรับ YAML สำหรับการปรับใช้งานบริการและพ็อดที่ Kubernetes สร้างขึ้นได้อย่างไรโดยกรอกแบบฟอร์ม ฉันจะนำความลับเข้าสู่Podเพื่อใช้งานได้อย่างไร?

12
จะสร้างสภาพแวดล้อมการพัฒนาท้องถิ่นสำหรับ Kubernetes ได้อย่างไร?
Kubernetesดูเหมือนจะเกี่ยวกับการปรับใช้คอนเทนเนอร์กับคลาวด์ของคลัสเตอร์ สิ่งที่ดูเหมือนจะไม่แตะต้องคือการพัฒนาและการจัดเตรียมสภาพแวดล้อม (หรือเช่นนั้น) ในระหว่างการพัฒนาคุณต้องการให้ใกล้เคียงกับสภาพแวดล้อมการผลิตมากที่สุดพร้อมกับการเปลี่ยนแปลงที่สำคัญบางประการ: ติดตั้งในเครื่อง (หรืออย่างน้อยก็ที่ที่คุณและคุณเท่านั้นที่สามารถเข้าถึงได้ ) ใช้ซอร์สโค้ดล่าสุดในการรีเฟรชหน้า (สมมติว่าเป็นเว็บไซต์ควรรีเฟรชหน้าอัตโนมัติในการบันทึกไฟล์ในเครื่องซึ่งสามารถทำได้หากคุณติดตั้งซอร์สโค้ดและใช้บางสิ่งเช่นYeoman ) ในทำนองเดียวกันหนึ่งอาจต้องการสภาพแวดล้อมที่ไม่เปิดเผยต่อสาธารณะที่จะทำการบูรณาการอย่างต่อเนื่อง Kubernetes รองรับสภาพแวดล้อมการพัฒนาแบบนั้นหรือไม่หรือเป็นสิ่งที่เราต้องสร้างขึ้นโดยหวังว่าระหว่างการผลิตจะยังคงใช้งานได้?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.