logo jittagornp.me
profile photo จิตกร พิทักษ์เมธากุล
Jan 10, 2020

ติดตั้ง Kubernetes บน Ubuntu 18.04

k8s-cluster.png

Prerequisites

  • Spec เครื่องอย่างน้อยใช้ 2 vCPU
  • Memory อย่างน้อย 2 GB

Environments

  • Linux Ubuntu 18.04
  • เราจะจำลอง (ใช้) 3 Nodes ดังนี้
Master Node : 10.130.38.189
Worker Node1 : 10.130.38.192
Worker Node2 : 10.130.38.200

Steps ที่ต้องทำ

  1. ติดตั้ง Docker และ Kubernetes สำหรับทุก ๆ Nodes
  2. Setup Master Node
  3. Worker Node เข้าร่วม (Join) Cluster

ทุก ๆ Nodes ทำดังนี้

  1. ติดตั้ง Docker บน Ubuntu 18.04
  2. ปิดการใช้งาน (Turn off) Swap
$ sudo swapoff -a
$ sudo vi /etc/fstab  

ให้ Comment บรรทัดนี้ (ถ้ามี)

#/swap.img  none    swap    sw  0    0 
  1. Update และติดตั้ง apt-transport-https
$ sudo apt-get update
$ sudo apt install -y apt-transport-https
  1. เพิ่ม api-key
$ curl -s \
    https://packages.cloud.google.com/apt/doc/apt-key.gpg |\
    sudo apt-key add -
  1. สร้าง File เปล่า (Empty File) kubernetes.list
$ sudo touch /etc/apt/sources.list.d/kubernetes.list
  1. Update File kubernetes.list
$ echo \
    "deb http://apt.kubernetes.io/ kubernetes-xenial main" |\
    sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  1. ติดตั้ง Package kubeadm
$ sudo apt update   
$ sudo apt install -y kubeadm  

มันจะทำการติดตั้งทั้ง kubeadm, kubectl และ kubelet ให้

  1. ตรวจสอบคำสั่ง
$ kubeadm --help
$ kubectl --help 
$ kubelet --help

สำหรับ Master Node เท่านั้น

  1. Run Command สำหรับ Initial Master Node
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16  

*** เมื่อ Run เสร็จ ให้ Copy Command ชุดนี้ ซึ่งอยู่ด้านล่างสุด ไปใส่ Text Editor สักตัว (เช่น Notepad++) แล้ว Save เก็บไว้ (อย่าให้หาย)

kubeadm join <MASTER_NODE_IP>:6443 --token jtadhb.cv1o6qi62g1n85s9 --discovery-token-ca-cert-hash sha256:ffd679b0444cb1d8dd67dab42e232c9...
  1. สร้าง Directory .kube ไว้ที่ Home Directory ของ User
$ mkdir -p $HOME/.kube  
  1. Copy Admin Config ไปเก็บไว้ใน .kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  1. เปลี่ยนความเป็นเจ้าของ File (File Owner)
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config  
  1. ติดตั้ง kube-flannel addons สำหรับทำ Network Configurations
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml  
  1. ตรวจสอบ Nodes
$ kubectl get nodes  

สำหรับทุก ๆ Worker Nodes

  1. Run Command (ที่เคยให้ Save เก็บไว้) เพื่อเข้าร่วม (Join) Cluster
$ kubeadm join <MASTER_NODE_IP>:6443 --token jtadhb.cv1o6qi62g1n85s9 --discovery-token-ca-cert-hash sha256:ffd679b0444cb1d8dd67dab42e232c9...

กลับไปที่ Master Node

  1. ลองเช็ค Nodes ดู
$ kubectl get nodes  

Reference

https://spalinux.com/2018/09/install-and-configure-kubernetes-on-ubuntu-18-04

profile photo
จิตกร พิทักษ์เมธากุล fire fire fire
วิธีการทำนายอนาคตที่ดีที่สุด คือ การสร้างมันขึ้นมา