Blog Chia SẻBlog Chia Sẻ

Cài đặt Kubernetes 3 node với Kubeadm – Version v1.23

0


## Chuẩn bị
```
192.168.60.180 master
192.168.60.181 worker-1
192.168.60.182 worker-2

echo "192.168.60.185 master" >> /etc/hosts
echo "192.168.60.186 worker-1" >> /etc/hosts
echo "192.168.60.187 worker-2" >> /etc/hosts
```

```
hostnamectl set-hostname master
hostnamectl set-hostname worker-1
hostnamectl set-hostname worker-2
```

## Install Dependency and containerd

```
sudo apt install curl apt-transport-https -y
sudo apt install curl gnupg2 software-properties-common apt-transport-https ca-certificates -y

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update

sudo apt install jq -y
sudo apt install containerd.io -y

mkdir -p /etc/containerd
containerd config default>/etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd
```

```
modprobe overlay
modprobe br_netfilter

tee /etc/modules-load.d/containerd.conf </etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
```

Cài đặt kubelet kubeadm kubectl
```
apt update -y
apt install kubelet kubeadm kubectl -y
apt-mark hold kubelet kubeadm kubectl
```

### Bước 2: Khởi tạo Cluster

Lưu ý:
- Thực hiện trên Master

Khởi tạo Cluster
```
sudo kubeadm init --apiserver-advertise-address=192.168.60.180 --pod-network-cidr=172.16.0.0/16
```

Lưu ý
- apiserver-advertise-address : IP của node master.
- pod-network-cidr : Dải địa chỉ sử dụng, phụ thuộc vào công nghệ sử dụng, trong bài sử dụng
công nghệ network calico nên giá trị bằng 172.16.0.0/16

Khởi tạo biến môi trường
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

### Bước 3: Join Worker vào cluster

Lưu ý:
- Thực hiện trên Worker 01 và Worker 02

```
kubeadm join 192.168.60.180:6443 --token rc36nx.xesq78op1qzd2ptq \
--discovery-token-ca-cert-hash sha256:19d1692e630963f9b35215633e578f165ee909b52868c4ed12b86c728e0bd310
```

Kiểm tra - Thực hiện trên Master
```
kubectl get nodes
```

Lưu ý: Các node thời điểm trạng thái sẽ không Ready vì chưa deploy Network Plugin

### Bước 4: Khởi tạo Network Plugin (CNI) - Calico

Lưu ý
- Thực hiện trên Master

```
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
```

Kiểm tra
```
kubectl get pods -n kube-system
```

Lưu ý:
- Sẽ mất 5-10 phút để Pod Network Calico khởi tạo

Kiểm tra trạng thái các node
```
kubectl get nodes
```

Lưu ý:
- Tại thời điểm trạng thái các node sẽ là Ready do đã có cấu hình Network

In token join command
```
kubeadm token create --print-join-command
```

## Phần 2: Kiểm tra Cluster

### Tạo Deployment
```
kubectl create deployment nginx --image=nginx
kubectl get pods -l app=nginx
```

### Expose Service

```
kubectl expose deploy nginx --type=NodePort --port 80
```

### Kiểm tra trạng thái Pod
Kiểm tra kết nối pod
```
PORT_NUMBER=$(kubectl get svc -l app=nginx -o jsonpath="{.items[0].spec.ports[0].nodePort}")

curl http://worker-1:$PORT_NUMBER
curl http://worker-2:$PORT_NUMBER
```

### Kiểm tra log pods
```
POD_NAME=$(kubectl get pods -l app=nginx -o jsonpath="{.items[0].metadata.name}")
kubectl logs $POD_NAME
```

### Truy cập pod thực hiện CLI
```
kubectl exec -ti $POD_NAME -- nginx -v
```

### Clean Test
```
kubectl delete deployment nginx
kubectl delete svc nginx
kubectl get all --all-namespaces
```

### Kiểm tra version
```
root@master:~# kubelet --version
Kubernetes v1.23.0
```

Tại đây cluster đã sẵn sàng, snapshot `kubeadm-calico-v126-ok`

https://thenewstack.io/how-to-deploy-kubernetes-with-kubeadm-and-containerd/

Câu hỏi/câu trả lời này có giải quyết được sự cố của bạn không?

Đánh giá

Ý kiến ​​(không bắt buộc)

0Nó rất hữu ích cho mọi người.

Tìm kiếm

Xem các câu hỏi liên quan