จะติดตั้ง Kubernetes บน Ubuntu 18 ได้อย่างไร

เรียนรู้วิธีการติดตั้ง Kubernetes บน Ubuntu.


Kubernetes เป็นเครื่องมือแปลงโอเพ่นซอร์สคอนเทนเนอร์ที่พัฒนาโดย Google ในบทความนี้คุณจะได้เรียนรู้วิธีตั้งค่า Kubernetes ด้วยโหนดต้นแบบและโหนดผู้ปฏิบัติงาน ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Docker ไว้ทั้งบนโหนดหลักและโหนดผู้ปฏิบัติงาน.

รายละเอียดสภาพแวดล้อมและการตั้งค่า

สำหรับการสาธิตฉันมี 2 ระบบ Ubuntu หนึ่งอันจะเป็นโหนดหลักและอีกอันหนึ่งจะเป็นโหนดของผู้ปฏิบัติงาน การกำหนดค่าเซิร์ฟเวอร์ทั้งสองเป็นดังนี้.

  • 2 ซีพียู
  • หลัก – RAM 4 GB / ผู้ปฏิบัติงาน – RAM 2 GB
  • ฮาร์ดดิสก์ 10 GB

ใช้คำสั่ง hostnamectl เพื่อตั้งชื่อโฮสต์บนทั้งสองระบบ.

บนโหนดหลัก:

[email protected]: ~ $ sudo hostnamectl set-hostname kubernetes-master

บนโหนดผู้ปฏิบัติงาน:

[email protected]: ~ $ sudo hostnamectl set-hostname kubernetes-worker

ดังนั้นด้านล่างนี้คือรายละเอียดของทั้งสองโหนด.

มาสเตอร์โหนด

  • ชื่อโฮสต์: kubernetes-master
  • ที่อยู่ IP: 192.168.0.107

โหนดคนงาน

  • ชื่อโฮสต์: kubernetes-worker
  • ที่อยู่ IP: 192.168.0.108

แก้ไขไฟล์โฮสต์บนทั้งสองระบบ.

[email protected]: ~ $ sudo gedit / etc / hosts

192.168.0.107 kubernetes-master
192.168.0.109 kubernetes-worker

ก่อนที่คุณจะเริ่มการติดตั้ง Kubernetes ให้รันคำสั่งด้านล่างทั้งบนโหนดหลักและโหนดผู้ปฏิบัติงานเพื่อตรวจสอบว่า Docker ทำงานอยู่หรือไม่.

[email protected]: ~ $ sudo สถานะนักเทียบท่าบริการ
[sudo] รหัสผ่านสำหรับ geekflare:
● docker.service – เครื่องมือสร้างแอปพลิเคชันคอนเทนเนอร์ Docker
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/docker.service; เปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งาน: ทำงาน (ทำงาน) ตั้งแต่วันเสาร์ 2019-11-23 15:39:36 EST; 3 สัปดาห์ 0 วันที่ผ่านมา
เอกสาร: https://docs.docker.com
PID หลัก: 8840 (นักเทียบท่า)
Tasks: 17
หน่วยความจำ: 42.3M
CGroup: /system.slice/docker.service
└─8840 / usr / bin / dockerd -H fd: // –containerd = / run / containerd / containerd.sock

23 พ.ย. 15:39:35 น. geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 35.091941184-05: 00" ระดับ = เตือน msg ="เคอร์เนลของคุณไม่รองรับ cgrou
23 พ.ย. 15:39:35 น. geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 35.093149218-05: 00" ระดับ = ข้อมูล msg ="กำลังโหลดตู้คอนเทนเนอร์: เริ่ม."
23 พ.ย. 15:39:35 น. geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 35.957842188-05: 00" ระดับ = ข้อมูล msg ="กำหนดค่าเริ่มต้นบริดจ์ (docker0)
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.078753190-05: 00" ระดับ = ข้อมูล msg ="กำลังโหลดคอนเทนเนอร์: เสร็จแล้ว."
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.664727326-05: 00" ระดับ = ข้อมูล msg ="ภูตนักเลง" กระทำ = 481bc77 graphdr
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.817929464-05: 00" ระดับ = Error msg ="ออกจากคลัสเตอร์พร้อมข้อผิดพลาด: error whi
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.820439024-05: 00" ระดับ = Error msg ="ไม่สามารถเริ่มองค์ประกอบ swarm
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.820821712-05: 00" ระดับ = ข้อมูล msg ="Daemon เสร็จสิ้นการเริ่มต้น"
23 พ.ย. 15:39:36 น. geekflare systemd [1]: เริ่มใช้ Docker Application Container Engine.
23 พ.ย. 15:39:36 geekflare dockerd [8840]: เวลา ="2019-11-23T15: 39: 36.883382952-05: 00" ระดับ = ข้อมูล msg ="API ฟังบน /home/geekflare/docker.sock
บรรทัด 1-20 / 20 (สิ้นสุด)

ติดตั้ง Kubernetes

รันคำสั่งทั้งหมดที่กล่าวถึงในส่วนนี้บนโหนดมาสเตอร์และโหนดผู้ทำงาน.

ประการแรกเพิ่มคีย์ที่เก็บแพคเกจ Kubernetes.

[email protected]: ~ $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
[sudo] รหัสผ่านสำหรับ geekflare:
ตกลง

เรียกใช้คำสั่งด้านล่างเพื่อกำหนดค่าที่เก็บแพคเกจ Kubernetes.

[email protected]: ~ $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Hit: 1 https://download.docker.com/linux/ubuntu bionic InRelease
Hit: 2 http://ppa.launchpad.net/ansible/ansible/ubuntu cosmic InRelease
ได้รับ: 3 http://apt.puppetlabs.com ไบโอนิค InRelease [85.3 kB]
Hit: 5 http://security.ubuntu.com/ubuntu ความปลอดภัยของจักรวาล InRelease
Hit: 6 http://us.archive.ubuntu.com/ubuntu จักรวาลปล่อยออกมา
Ign: 7 http://pkg.jenkins.io/debian-stable ไบนารี / InRelease
Hit: 8 http://us.archive.ubuntu.com/ubuntu การอัปเดตของจักรวาล InRelease
Hit: 9 http://pkg.jenkins.io/debian-stable ไบนารี / Release
Hit: 10 http://us.archive.ubuntu.com/ubuntu cosmic-backports InRelease
รับ: 4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [8,993 B]
ได้รับ: 11 http://apt.puppetlabs.com bionic / puppet6 amd64 แพ็คเกจ [36.1 kB]
รับ: 13 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 แพ็คเกจ [32.2 kB]
ดึงข้อมูลได้ 163 kB ใน 3 วินาที (49.1 kB / s)
กำลังอ่านรายการแพ็กเกจ … เสร็จแล้ว

ก่อนดำเนินการต่อให้ปิดการใช้งานการสลับบนทั้งสองโหนด.

[email protected]: ~ $ sudo swapoff -a

ติดตั้ง Kubeadm

ตอนนี้คุณต้องติดตั้ง kubeadm.

kubeadm เป็นเครื่องมือใน Kubernetes ซึ่งใช้เพื่อเพิ่มโหนดในคลัสเตอร์ Kubernetes.

[email protected]: ~ $ sudo apt-get install kubeadm -y
กำลังอ่านรายการแพ็กเกจ … เสร็จแล้ว
อาคารต้นไม้พึ่งพา
กำลังอ่านข้อมูลสถานะ … เสร็จแล้ว
แพ็คเกจเพิ่มเติมต่อไปนี้จะถูกติดตั้ง:
ควบคุม cri- เครื่องมือ ebtables ethtool kubectl kubelet kubernetes-cni socat
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
ควบคุม cri- เครื่องมือ ebtables ethtool kubeadm kubectl kubelet kubernetes-cni socat
0 อัพเกรดแล้ว 9 เพิ่งติดตั้งใหม่ 0 เพื่อลบและ 235 ไม่ได้อัพเกรด.
จำเป็นต้องได้รับจดหมายเหตุ 51.8 MB.
หลังจากการดำเนินการนี้จะใช้พื้นที่ดิสก์เพิ่มเติม 273 MB.
รับ: 3 http://us.archive.ubuntu.com/ubuntu จักรวาล / main amd64 conntrack amd64 1: 1.4.5-1 [30.2 kB]
รับ: 1 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 cri-tools amd64 1.13.0-00 [8,776 kB]
รับ: 6 http://us.archive.ubuntu.com/ubuntu จักรวาล / main amd64 ebtables amd64 2.0.10.4-3.5ubuntu5 [79.8 kB]
รับ: 8 http://us.archive.ubuntu.com/ubuntu จักรวาล / main amd64 ethtool amd64 1: 4.16-1 [115 kB]
รับ: 9 http://us.archive.ubuntu.com/ubuntu จักรวาล / main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB]
รับ: 2 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 kubernetes-cni amd64 0.7.5-00 [6,473 kB]
รับ: 4 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 kubelet amd64 1.17.0-00 [19.2 MB]
รับ: 5 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 kubectl amd64 1.17.0-00 [8,742 kB]
รับ: 7 https://packages.cloud.google.com/apt kubernetes-xenial / main amd64 kubeadm amd64 1.17.0-00 [8,059 kB]
ดึง 51.8 MB ใน 8 วินาที (6,419 kB / s)
การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้.
(กำลังอ่านฐานข้อมูล … 318151 ไฟล์และไดเรกทอรีที่ติดตั้งในปัจจุบัน)
กำลังเตรียมที่จะแกะ … / 0-conntrack_1% 3a1.4.5-1_amd64.deb …
คลายการเชื่อมต่อ (1: 1.4.5-1) …
การเลือกแพ็กเกจ cri-tools ก่อนหน้านี้ที่ไม่ได้เลือก.
กำลังเตรียมที่จะแกะ … / 1-cri-tools_1.13.0-00_amd64.deb …
เปิดกล่องเครื่องมือ cri-1.13.0-00 …
การเลือกแพ็คเกจ ebtables ที่ไม่ได้เลือกก่อนหน้านี้.
กำลังเตรียมที่จะแกะ … / 2-ebtables_2.0.10.4-3.5ubuntu5_amd64.deb …
เอาออก ebtables (2.0.10.4-3.5ubuntu5) …
การเลือกแพ็กเกจ ethtool ที่ไม่ได้เลือกก่อนหน้านี้.
กำลังเตรียมที่จะแกะ … / 3-ethtool_1% 3a4.16-1_amd64.deb …
การคลายเอททูล (1: 4.16-1) …
การเลือกแพ็กเกจที่ยังไม่ได้เลือกก่อนหน้านี้ kubernetes-cni.
กำลังเตรียมที่จะแกะ … / 4-kubernetes-cni_0.7.5-00_amd64.deb …
เปิดออก kubernetes-cni (0.7.5-00) …
การเลือกแพ็กเกจ socat ที่ไม่ได้เลือกก่อนหน้านี้.
กำลังเตรียมที่จะแกะ … / 5-socat_1.7.3.2-2ubuntu2_amd64.deb …
เปิดออก socat (1.7.3.2-2ubuntu2) …
การเลือกแพคเกจ kubelet ก่อนหน้านี้ไม่ได้เลือก.
กำลังเตรียมที่จะแกะ … / 6-kubelet_1.17.0-00_amd64.deb …
การเปิด kubelet (1.17.0-00) …
การเลือกแพ็คเกจ kubectl ที่ไม่ได้เลือกก่อนหน้านี้.
กำลังเตรียมที่จะแกะ … / 7-kubectl_1.17.0-00_amd64.deb …
การเปิดกล่องบรรจุ kubectl (1.17.0-00) …
การเลือกแพคเกจ kubeadm ที่ไม่ได้เลือกก่อนหน้านี้.
กำลังเตรียมที่จะแกะ … / 8-kubeadm_1.17.0-00_amd64.deb …
เปิด kubeadm ออกมา (1.17.0-00) …
การตั้งค่าควบคุม (1: 1.4.5-1) …
การตั้งค่า kubernetes-cni (0.7.5-00) …
การตั้งค่าเครื่องมือ cri (1.13.0-00) …
ตั้งค่า socat (1.7.3.2-2ubuntu2) …
การประมวลผลทริกเกอร์สำหรับ systemd (239-7ubuntu10.12) …
การตั้งค่า ebtables (2.0.10.4-3.5ubuntu5) …
สร้าง symlink /etc/systemd/system/multi-user.target.wants/ebtables.service → /lib/systemd/system/ebtables.service.
update-rc.d: คำเตือน: การเริ่มต้นและหยุดการกระทำไม่ได้รับการสนับสนุนอีกต่อไป; กลับไปเป็นค่าเริ่มต้น
การตั้งค่า kubectl (1.17.0-00) …
การประมวลผลทริกเกอร์สำหรับ man-db (2.8.4-2) …
การตั้งค่า ethtool (1: 4.16-1) …
การตั้งค่า kubelet (1.17.0-00) …
สร้าง symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service.
การตั้งค่า kubeadm (1.17.0-00) …
การประมวลผลทริกเกอร์สำหรับ systemd (239-7ubuntu10.12) …

ตรวจสอบรุ่น kubeadm เพื่อตรวจสอบว่าได้รับการติดตั้งอย่างถูกต้องหรือไม่.

[email protected]: ~ รุ่น $ kubeadm
รุ่น kubeadm: &version.Info {สาขา:"1", ผู้เยาว์:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"สะอาด", BuildDate:"2019-12-07T21: 17: 50Z", GoVersion:"go1.13.4", คอมไพเลอร์:"GC", แพลตฟอร์ม:"ลินุกซ์ / amd64"}

เริ่มต้นคลัสเตอร์ Kubernetes

ตอนนี้ให้รันคำสั่ง init เพื่อเริ่มต้นคลัสเตอร์ Kubernetes บน โหนดหลัก. ใช้ –apiserver-ads-address เพื่อบอกโหนดผู้ปฏิบัติงานเกี่ยวกับที่อยู่ IP ของต้นแบบ.

[email protected]: ~ $ sudo kubeadm init –apiserver-ads-address = 192.168.0.107 –pod-network-cidr = 10.244.0.0 / 16
W1217 11: 05: 15.474854 10193 validation.go: 28] ไม่สามารถตรวจสอบการกำหนดค่า kube-proxy – ไม่มีตัวตรวจสอบความพร้อมใช้งาน
W1217 11: 05: 15.474935 10193 validation.go: 28] ไม่สามารถตรวจสอบการตั้งค่า kubelet ได้ – ไม่มีตัวตรวจสอบความพร้อมใช้งาน
[init] การใช้รุ่น Kubernetes: v1.17.0
[preflight] เรียกใช้การตรวจสอบก่อนการบิน
[คำเตือน IsDockerSystemdCheck]: ตรวจพบ "cgroupfs" เป็นไดรเวอร์ Docker cgroup ไดรเวอร์ที่แนะนำคือ "systemd". โปรดปฏิบัติตามคำแนะนำที่ https://kubernetes.io/docs/setup/cri/
[preflight] การดึงภาพที่ต้องการสำหรับการตั้งค่าคลัสเตอร์ Kubernetes
[preflight] อาจใช้เวลาหนึ่งหรือสองนาทีขึ้นอยู่กับความเร็วในการเชื่อมต่ออินเทอร์เน็ตของคุณ
[preflight] คุณสามารถทำการกระทำนี้ล่วงหน้าได้โดยใช้ ‘kubeadm config images pull’
[kubelet-start] การเขียนไฟล์สภาพแวดล้อม kubelet ด้วยแฟล็กไปยังไฟล์ "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] กำลังเขียนการกำหนดค่า kubelet ลงในไฟล์ "/var/lib/kubelet/config.yaml"
[kubelet-start] การเริ่ม kubelet
[certs] การใช้โฟลเดอร์ certificateDir "/ etc / Kubernetes / PKI"
[certs] กำลังสร้าง "CA" ใบรับรองและคีย์
[certs] กำลังสร้าง "apiserver" ใบรับรองและคีย์
[certs] apiserver ที่ให้บริการใบรับรองถูกเซ็นชื่อสำหรับชื่อ DNS [kubernetes-master kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] และ IP [10.96.0.1 192.168.0.107]
[certs] กำลังสร้าง "apiserver-kubelet ลูกค้า" ใบรับรองและคีย์
[certs] กำลังสร้าง "ด้านหน้า proxy-CA" ใบรับรองและคีย์
[certs] กำลังสร้าง "ด้านหน้าพร็อกซี่ลูกค้า" ใบรับรองและคีย์
[certs] กำลังสร้าง "etcd / CA" ใบรับรองและคีย์
[certs] กำลังสร้าง "etcd / เซิร์ฟเวอร์" ใบรับรองและคีย์
[certs] ใบรับรองการให้บริการ etcd / เซิร์ฟเวอร์ถูกลงชื่อสำหรับชื่อ DNS [kubernetes-master localhost] และ IP [192.168.0.107 127.0.0.1 :: 1]
[certs] กำลังสร้าง "etcd / เพียร์" ใบรับรองและคีย์
[certs] ใบรับรองการบริการ etcd / peer ถูกลงชื่อสำหรับชื่อ DNS [kubernetes-master localhost] และ IP [192.168.0.107 127.0.0.1 :: 1]
[certs] กำลังสร้าง "etcd / healthcheck ลูกค้า" ใบรับรองและคีย์
[certs] กำลังสร้าง "apiserver-etcd ลูกค้า" ใบรับรองและคีย์
[certs] กำลังสร้าง "SA" กุญแจและกุญแจสาธารณะ
[kubeconfig] การใช้โฟลเดอร์ kubeconfig "/ etc / Kubernetes"
[kubeconfig] การเขียน "admin.conf" ไฟล์ kubeconfig
[kubeconfig] การเขียน "kubelet.conf" ไฟล์ kubeconfig
[kubeconfig] การเขียน "ตัวควบคุม Manager.conf" ไฟล์ kubeconfig
[kubeconfig] การเขียน "scheduler.conf" ไฟล์ kubeconfig
[ระนาบควบคุม] การใช้โฟลเดอร์รายการ "/ etc / Kubernetes / ปรากฏ"
[ระนาบควบคุม] การสร้างรายการ Pod แบบคงที่สำหรับ "Kube-apiserver"
[ระนาบควบคุม] การสร้างรายการ Pod แบบคงที่สำหรับ "Kube คอนโทรลเลอร์ผู้จัดการ"
W1217 11: 05: 25.584769 10193 รายการ. ไปที่: 214] การอนุญาตโหมด kube-apiserver เริ่มต้นคือ "โหนด, อาร์แบค"; การใช้ "โหนด, อาร์แบค"
[ระนาบควบคุม] การสร้างรายการ Pod แบบคงที่สำหรับ "Kube-จัดตารางเวลา"
W1217 11: 05: 25.587128 10193 รายการ. ไปที่: 214] การอนุญาตโหมด kube-apiserver เริ่มต้นคือ "โหนด, อาร์แบค"; การใช้ "โหนด, อาร์แบค"
[etcd] การสร้างรายการ Pod แบบคงที่สำหรับโลคอล etcd ใน "/ etc / Kubernetes / ปรากฏ"
[wait-control-plane] กำลังรอ kubelet เพื่อบูตเครื่องบินควบคุมเป็นแบบคงที่ Pod จากไดเรกทอรี "/ etc / Kubernetes / ปรากฏ". สิ่งนี้อาจใช้เวลานานถึง 4m0s
[apiclient] ส่วนประกอบของระนาบควบคุมมีความสมบูรณ์หลังจาก 35.010368 วินาที
[upload-config] การจัดเก็บการกำหนดค่าที่ใช้ใน ConfigMap "kubeadm-config" ใน "Kube ระบบ" namespace
[kubelet] การสร้าง ConfigMap "kubelet-config-1.17" ใน namespace kube-system ที่มีการกำหนดค่าสำหรับ kubelets ในคลัสเตอร์
[upload-certs] การข้ามขั้นตอน โปรดดู – อัปโหลด certs
[mark-control-plane] การทำเครื่องหมายโหนด kubernetes-master เป็น control-plane โดยการเพิ่มเลเบล "node-role.kubernetes.io/master= ”"
[mark-control-plane] การทำเครื่องหมายโหนด kubernetes-master เป็นระนาบควบคุมโดยการเพิ่ม taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] การใช้โทเค็น: dmamk9.0nmo62mhom8961qw
[bootstrap-token] การกำหนดค่าโทเค็น bootstrap, ConfigMap ของคลัสเตอร์ข้อมูล Info, บทบาท RBAC
[bootstrap-token] กฎ RBAC ที่กำหนดค่าเพื่ออนุญาตโหนดโทเค็น Bootstrap เพื่อโพสต์ CSRs เพื่อให้โหนดได้รับข้อมูลรับรองใบรับรองระยะยาว
[bootstrap-token] กฎ RBAC ที่กำหนดค่าเพื่อให้ตัวควบคุม csrapprover อนุมัติ CSRs โดยอัตโนมัติจาก Node Bootstrap Token
[bootstrap-token] กำหนดค่ากฎ RBAC เพื่ออนุญาตการหมุนใบรับรองสำหรับใบรับรองไคลเอ็นต์โหนดทั้งหมดในคลัสเตอร์
[bootstrap-token] การสร้าง "คลัสเตอร์ข้อมูล" ConfigMap ใน "Kube สาธารณะ" namespace
[kubelet-finalize] กำลังอัปเดต "/etc/kubernetes/kubelet.conf" เพื่อชี้ไปที่ใบรับรองและคีย์ไคลเอ็นต์ kubelet ที่หมุนได้
[addons] Addon ที่จำเป็นต้องใช้: CoreDNS
[addons] แอปพลิเคชันที่จำเป็นใช้: kube-proxy

ชุดควบคุม Kubernetes ของคุณเริ่มต้นได้สำเร็จ!

ในการเริ่มใช้คลัสเตอร์ของคุณคุณต้องเรียกใช้สิ่งต่อไปนี้ในฐานะผู้ใช้ปกติ:

mkdir -p $ HOME / .kube
sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config

ถัดไปคุณต้องปรับใช้เครือข่ายพ็อดบนคลัสเตอร์.

เรียกใช้ kubectl ใช้ -f [podnetwork] .yaml ด้วยหนึ่งในตัวเลือกที่แสดงไว้ที่ https://kubernetes.io/docs/concepts/cluster-administr/addons/

จากนั้นคุณสามารถเข้าร่วมจำนวนโหนดงานใด ๆ โดยการเรียกใช้ต่อไปนี้ในแต่ละเป็นราก:

kubeadm เข้าร่วม 192.168.0.107:6443 – โทเค็น dmamk9.0nmo62mhom8961qw – การค้นพบ-token-ca-cert-hash sha256: 2de92f42e84d2020d8b19b17b877195178

ดังที่กล่าวไว้ในผลลัพธ์ข้างต้นสร้างไดเรกทอรี. kube และคัดลอกไฟล์ admin.conf เพื่อกำหนดค่าไฟล์ในไดเรกทอรี. kube.

[email protected]: ~ $ mkdir -p $ HOME / .kube
[email protected]: ~ $ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
[email protected]: ~ $ sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config

ในขณะนี้เมื่อคุณรันคำสั่ง kubectl get nodes คุณจะเห็นสถานะของโหนดหลักคือ NotReady.

[email protected]: ~ $ sudo kubectl รับโหนด
สถานะบทบาทเป็นรุ่น VERSION
kubernetes-master NotReady master 2m34s v1.17.0

ปรับใช้เครือข่าย Pod – ผ้าสักหลาด

ถัดไปคุณต้องปรับใช้เครือข่ายพ็อดบนโหนดหลัก ฉันใช้เครือข่าย Flannel pod มันถูกใช้เพื่อสื่อสารระหว่างโหนดในคลัสเตอร์ Kubernetes.

[email protected]: ~ $ sudo kubectl ใช้ -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
สร้างแล้ว podsecuritypolicy.policy / psp.flannel.unprivileged
สร้างขึ้นสำหรับ clusterrole.rbac.authorization.k8s.io/flannel
สร้างขึ้นแล้ว clusterrolebinding.rbac.authorization.k8s.io/flannel
สร้างบัญชีบริการ / ผ้าสักหลาดแล้ว
สร้าง configmap / kube-flannel-cfg แล้ว
สร้าง daemonset.apps / kube-flannel-ds-amd64 แล้ว
สร้าง daemonset.apps / kube-flannel-ds-arm64 แล้ว
สร้าง daemonset.apps / kube-flannel-ds-arm แล้ว
สร้าง daemonset.apps / kube-flannel-ds-ppc64le
สร้าง daemonset.apps / kube-flannel-ds-s390x

ตรวจสอบสถานะของโหนดหลักมันจะต้องอยู่ในสถานะพร้อม.

[email protected]: ~ $ sudo kubectl รับโหนด
สถานะบทบาทเป็นรุ่น VERSION
kubernetes-master Ready 4m41s v1.17.0 ต้นแบบ

หลังจากนั้นสองสามวินาทีให้ตรวจสอบว่าพ็อดทั้งหมดนั้นเปิดใช้งานอยู่หรือไม่.

[email protected]: ~ $ kubectl รับพ็อด – ทั้งหมด – เนมสเปซ
NAMESPACE NAME สถานะการรีสตาร์ทสถานะพร้อมใช้
kube-system coredns-6955765f44-rzw9d 1/1 วิ่ง 0 4m17s
kube-system coredns-6955765f44-xvgdp 1/1 วิ่ง 0 4m17s
kube-system etcd-kubernetes-master 1/1 วิ่ง 0 4m27s
kube-system kube-apiserver-kubernetes-master 1/1 ทำงาน 0 4m27s
kube-system kube-controller-manager-kubernetes-master 1/1 กำลังทำงาน 0 4m27s
kube-system kube-flannel-ds-amd64-c2rf5 1/1 วิ่ง 0 81 วินาที
kube-system kube-proxy-mvdd7 1/1 กำลังรัน 0 4m17s
kube-system kube-scheduler-kubernetes-master 1/1 กำลังทำงาน 0 4m27s

เพิ่มโหนดผู้ปฏิบัติงานไปยังคลัสเตอร์

ในตอนนี้โหนดหลักของคุณได้รับการกำหนดค่าและรันอย่างเหมาะสมแล้วถึงเวลาที่ต้องเพิ่มโหนดงาน ที่นี่คุณต้องรันคำสั่ง join บนโหนดผู้ปฏิบัติงานซึ่งคุณได้รับหลังจากเริ่มต้น kubeadm.

รันคำสั่งด้านล่างบนโหนดผู้ปฏิบัติงานเพื่อเข้าร่วมโหนดหลัก.

[email protected]: ~ $ sudo kubeadm เข้าร่วม 192.168.0.107:6443 – โทเค็น dmamk9.0nmo62mhom8961qw –discovery-token-ca-cert-hash sha256: 2de92f42e84d2020d8b19b1778785df5f819623e239239239239
[sudo] รหัสผ่านสำหรับ geekflare:
W1217 11: 08: 01.066191 28968 join.go: 346] [preflight] คำเตือน: การตั้งค่า JoinControlPane.controlPlane จะถูกละเว้นเมื่อไม่ได้ตั้งค่าธงเครื่องบินควบคุม.
[preflight] เรียกใช้การตรวจสอบก่อนการบิน
[คำเตือน IsDockerSystemdCheck]: ตรวจพบ "cgroupfs" เป็นไดรเวอร์ Docker cgroup ไดรเวอร์ที่แนะนำคือ "systemd". โปรดปฏิบัติตามคำแนะนำที่ https://kubernetes.io/docs/setup/cri/
[preflight] การอ่านการกำหนดค่าจากคลัสเตอร์…
[preflight] FYI: คุณสามารถดูไฟล์ปรับแต่งนี้ด้วย ‘kubectl -n kube-system รับ cm kubeadm-config -oyaml’
[kubelet-start] กำลังดาวน์โหลดการกำหนดค่าสำหรับ kubelet จาก "kubelet-config-1.17" ConfigMap ในเนมสเปซระบบ kube
[kubelet-start] กำลังเขียนการกำหนดค่า kubelet ลงในไฟล์ "/var/lib/kubelet/config.yaml"
[kubelet-start] การเขียนไฟล์สภาพแวดล้อม kubelet ด้วยแฟล็กไปยังไฟล์ "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] การเริ่ม kubelet
[kubelet-start] กำลังรอ kubelet เพื่อดำเนินการบู๊ต TLS…

โหนดนี้ได้เข้าร่วมคลัสเตอร์:
* คำขอเซ็นชื่อในใบรับรองถูกส่งไปยังผู้เรียกร้องและได้รับการตอบกลับแล้ว.
* Kubelet ได้รับแจ้งเกี่ยวกับรายละเอียดการเชื่อมต่อที่ปลอดภัยใหม่.

รัน ‘kubectl get nodes’ บน control-plane เพื่อดูโหนดนี้เข้าร่วมคลัสเตอร์.

บนโหนดหลัก:

คุณจะเห็นอีกสองสามฝักกำลังทำงานอยู่ในขณะนี้หลังจากที่โหนดผู้ปฏิบัติงานเข้าร่วมคลัสเตอร์.

[email protected]: ~ $ kubectl รับพ็อด – ทั้งหมด – เนมสเปซ
NAMESPACE NAME สถานะการรีสตาร์ทสถานะพร้อมใช้
kube-system coredns-6955765f44-9c7jc 1/1 วิ่ง 0 5m3s
kube-system coredns-6955765f44-c9s9r 1/1 วิ่ง 0 5m3s
kube-system etcd-kubernetes-master 1/1 ทำงาน 0 5m12s
kube-system kube-apiserver-kubernetes-master 1/1 ทำงาน 0 5m12s
kube-system kube-controller-manager-kubernetes-master 1/1 ทำงาน 0 5m13s
kube-system kube-flannel-ds-amd64-lgr62 1/1 วิ่ง 0 3m35s
kube-system kube-flannel-ds-amd64-n6vwm 1/1 วิ่ง 0 27 วินาที
kube-system kube-proxy-9mqp6 1/1 ใช้งาน 0 27s
kube-system kube-proxy-kwkz2 1/1 ทำงาน 0 5m3s
kube-system kube-scheduler-kubernetes-master 1/1 วิ่ง 0 5m13s

ตอนนี้รันคำสั่ง kubectl อีกครั้งบนโหนดมาสเตอร์เพื่อตรวจสอบว่าโหนดผู้ปฏิบัติงานได้เข้าร่วมคลัสเตอร์และทำงานในสถานะพร้อมหรือไม่.

[email protected]: ~ $ kubectl รับโหนด
สถานะบทบาทเป็นรุ่น VERSION
kubernetes-master Ready master 5m27s v1.17.0
kubernetes-worker Ready 31s v1.17.0

ข้อสรุป

หลังจากที่การตั้งค่า Kubernetes พร้อมแล้วคุณสามารถเริ่มการจัดวางคอนเทนเนอร์บนคลัสเตอร์ Kubernetes หากสิ่ง Kubernetes ตื่นเต้นคุณคุณอาจต้องการเรียนรู้โดยการทำสิ่งนี้ แน่นอน Udemy.

Tags:

  • นักเทียบท่า

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map