ปรับใช้ Kubernetes ด้วย Kubeadm บน CentOS 7

ภาพรวม

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

kubeadm คืออะไร

Kubeadm เป็นเครื่องมือที่พัฒนาโดย Kubernetes ซึ่งช่วยให้คุณได้รับคลัสเตอร์ที่ทำงานได้ขั้นต่ำและทำงานโดยปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด มันจะบูตเฉพาะคลัสเตอร์ของคุณเท่านั้นไม่ใช่เครื่องสำรอง สิ่งต่าง ๆ เช่นแอดออนแดชบอร์ด Kubernetes โซลูชันการตรวจสอบและอื่น ๆ ไม่ใช่สิ่งที่ kubeadm จะทำเพื่อคุณ

ข้อกำหนดเบื้องต้น

มีข้อกำหนดเล็กน้อยสำหรับเซิร์ฟเวอร์ที่เราจะปรับใช้ เครื่องอย่างน้อยหนึ่งเครื่องที่ใช้ระบบปฏิบัติการที่รองรับ deb / rpm เราจะใช้ CentOS

  • 2 GB หรือมากกว่า RAM ต่อเครื่อง
  • CPU 2 ตัวขึ้นไปบนตัวมาสเตอร์

การเชื่อมต่อเครือข่ายเต็มรูปแบบระหว่างเครื่องทั้งหมดในคลัสเตอร์

เซิร์ฟเวอร์สองตัวที่ปรับใช้ในคู่มือนี้มีดังต่อไปนี้: - 1 CPU 2GB RAM พร้อม CentOS 7 (โหนดผู้ทำงาน) - 2 CPU 4GB RAM พร้อม CentOS 7 (โหนดหลัก)

ด้วยจำนวน RAM บนเซิร์ฟเวอร์ทั้งสองนี้ Kubernetes จะมีพื้นที่ให้หายใจได้มากมาย

การกำหนดค่าผู้ปฏิบัติงานและต้นแบบ

นี่คือขั้นตอนที่เราจะต้องดำเนินการกับโหนดต้นแบบและโหนดงาน:

  • ยำปรับปรุง & แพคเกจ
  • ติดตั้งนักเทียบท่า
  • ปิดใช้งาน selinux
  • ปิดใช้งานการสลับ
  • ปิดการใช้งานไฟร์วอลล์
  • อัปเดต IPTables
  • ติดตั้ง kubelet / kubeadm / kubectl

กำลังติดตั้ง Docker

เราจะใช้เวอร์ชั่น1.14ของ Kubernetes ในบทช่วยสอนนี้ สำหรับรุ่นนี้ Kubernetes 18.06.2แนะนำให้ใช้รุ่นเทียบท่า อย่าลืมตรวจสอบเวอร์ชั่น Docker ที่แนะนำสำหรับ Kuberenetes เวอร์ชั่นของคุณ

เราจะเพิ่มที่เก็บ Docker ให้กับ yum และติดตั้งเป็น18.06.2พิเศษ เมื่อติดตั้ง Docker แล้วเราจะต้องกำหนดค่า docker daemon ให้เป็นการตั้งค่าที่ Kubernetes แนะนำ

###Add yum-utils, if not installed already
yum install yum-utils

###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce

###Create /etc/docker directory.
mkdir /etc/docker

###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker

ปิดการใช้งาน SELinux

เนื่องจากเราใช้ CentOS เราจึงจำเป็นต้องปิดการใช้งาน SELinux นี่เป็นสิ่งจำเป็นเพื่ออนุญาตให้คอนเทนเนอร์เข้าถึงระบบไฟล์โฮสต์

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config

ปิดการใช้งาน Swap

ต้องปิดการใช้งาน Swap เพื่อให้ kubelet ทำงานได้อย่างถูกต้อง

sed -i '/swap/d' /etc/fstab
swapoff -a

ปิดการใช้งานไฟร์วอลล์

Kubernetes ใช้ IPTables เพื่อจัดการปริมาณข้อมูลขาเข้าและขาออก - เพื่อหลีกเลี่ยงปัญหาใด ๆ ที่เราปิดการใช้งานไฟร์วอลล์

systemctl disable firewalld
systemctl stop firewalld

อัปเดต IPTables

Kubernetes แนะนำว่าเรามั่นใจว่าnet.bridge.bridge-nf-call-iptablesได้ตั้งค่าไว้ที่ 1 เนื่องจากปัญหาที่ REHL / CentOS 7 มีปัญหาเกี่ยวกับปริมาณการใช้งานที่ถูกเปลี่ยนเส้นทางอย่างไม่ถูกต้องเนื่องจากผ่าน iptables

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

ติดตั้ง kubelet / kubeadm / kubectl

เราจะต้องเพิ่ม repub kubernetes ใน yum เมื่อเราทำเช่นนั้นเราก็ต้องเรียกใช้คำสั่งติดตั้งและเปิดใช้งาน kubelet

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

ตอนนี้เราได้กำหนดค่าอย่างสมบูรณ์ทั้งโหนดหลักและโหนดงานของเรา ตอนนี้เราสามารถเริ่มต้นโหนดหลักของเราและเข้าร่วมโหนดงานของเราเพื่อต้นแบบ!

หมายเหตุ ถ้าคุณต้องการเพิ่มโหนดผู้ปฏิบัติงานเพิ่มเติมกระบวนการข้างต้นจะต้องทำในโหนดเหล่านั้นทั้งหมดเช่นกัน

การตั้งค่าโหนดหลัก

เราต้องการเริ่มต้นโหนดหลักของเราโดยใช้คำสั่งต่อไปนี้ คุณจะต้องการแทนที่ที่อยู่ IP ของโหนดหลักในคำสั่งด้านล่าง นอกจากนี้เราจะส่งผ่าน pod-network-cidr เพื่อให้ง่ายขึ้นสำหรับเราในภายหลังเมื่อเราติดตั้งเครือข่าย Flannel overlay

kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16

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

kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2

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

ถัดลงมาเป็นผ้าสักหลาด ผ้าสักหลาดเป็นสิ่งที่ช่วยให้การสื่อสารกับพ็อดเพื่อพ็อด มีการซ้อนทับเครือข่ายประเภทอื่น ๆ อีกมากมายที่คุณสามารถติดตั้งได้ แต่เพื่อความเรียบง่ายคู่มือนี้จะใช้ Flannel

คัดลอกkube/configไฟล์ไปยังของคุณ$Homeเพื่อให้คุณสามารถดำเนินการkubectlคำสั่ง

mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

ขั้นตอนสุดท้ายหนึ่งในโหนดหลักคือการติดตั้ง Flannel เรียกใช้คำสั่งต่อไปนี้

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

ด้วยการคัดลอกการกำหนดค่านี้คุณจะสามารถเรียกใช้kubectl get csและรับการตอบกลับได้

NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

โหนดหลักของคุณถูกตั้งค่าและพร้อมใช้งาน ไปยังโหนดผู้ปฏิบัติงาน!

โหนดคนงาน

ณ จุดนี้ไม่มีงานพิเศษที่จำเป็นในโหนดผู้ปฏิบัติงาน สิ่งที่เราต้องทำคือเรียกใช้kubeadm joinคำสั่งที่เราได้รับจากkubeadm initผลลัพธ์ของเรา

หากในบางโอกาสคุณวางคำสั่ง kubeadm join ไว้ไม่ถูกต้องคุณสามารถสร้างอีกอันบนโหนดหลักโดยการรัน kubeadm token create --print-join-command

เมื่อคุณรันคำสั่ง kubeadm join ถ้าคุณรันkubectl get nodesบน master คุณจะเห็นเอาต์พุตที่คล้ายกันดังต่อไปนี้

NAME          STATUS   ROLES    AGE    VERSION
k8-master   Ready    master   107m   v1.14.2
k8-worker   Ready    <none>   45m    v1.14.2

ห่อ

เช่นเดียวกับที่คุณบูตคลัสเตอร์ของ Kubernetes โดยใช้ kubeadm คุณสามารถทำได้ด้วยเครือข่ายส่วนตัว Vultr เช่นเดียวกับผู้ให้บริการคลาวด์อื่น ๆ ที่อนุญาตสำหรับเครือข่ายส่วนตัว นอกจากนี้ถ้าคุณต้องการที่จะรันคำสั่ง kubectl จากเครื่องท้องถิ่นของคุณกับคลัสเตอร์ของคุณคุณสามารถบรรลุนี้โดยมี kubectl ติดตั้งภายในและดึงลงไฟล์จากคลัสเตอร์ไปยังเครื่องท้องถิ่นของคุณใน.kube/config$HOME/.kube/config

หวังว่าคู่มือนี้จะช่วยคุณสำรวจ kubeadm และทำให้คุณเล่นกับ kubernetes ได้ในเวลาไม่นาน!

ลิงค์ที่มีประโยชน์:



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true