Hướng dẫn install Kubernetes on Ubuntu phiên bản 20.04

2383
28-02-2024
Hướng dẫn install Kubernetes on Ubuntu phiên bản 20.04

Điều kiện cần thiết để có thể install Kubernetes on Ubuntu

Trước khi install Kubernetes on Ubuntu, bạn cần chuẩn bị các công cụ và thiết bị như sau:

  • 2 máy chủ Linux chạy Ubuntu 20.04
  • Quyền gốc
  • Ram dung lượng 3.75 trở lên, tốt nhất là nên sử dụng Ram 6Gb
  • 2 CPU trở lên
  • Các cụm trong máy được kết nối mạng đầy đủ
  • Tên máy chủ, địa chỉ MAC và product_uuid cho mỗi node
  • Cổng trên máy tính
  • Tắt tính năng trao đổi đê kubelet hoạt động bình thường

Hướng dẫn chi tiết cách install Kubernetes on Ubuntu phiên bản 20.04

Bước 1: Cài đặt Kubernetes

Người dùng phải chạy các lệnh trong nodes để cài đặt Kubernetes. Sử dụng ssh để đăng nhập vào node và tiếp tục rồi cài đặt gói apt - Transport - https để cấp quyền làm việc với http và https trong kho của Ubuntu. Đồng thời, người dùng hãy cài đặt Curl vì nó sẽ cần thiết cho các bước tiếp theo.

Thực hiện lần lượt các lệnh sau:

sudo apt install apt-transport-https curl

Sau đó, thêm khóa ký Kubernetes vào các node bằng cách thực hiện lệnh:

1

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

Tiếp theo, thêm kho lưu trữ Kubernetes làm nguồn gói trên cả hai node bằng lệnh sau:

1

2

echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list

sudo mv ~/kubernetes.list /etc/apt/sources.list.d

Sau đó, cập nhật các nút:

1

sudo apt update

Sau khi cập nhật hoàn tất sẽ đến bước tiến hành cài đặt Kubernetes. Điều này liên quan đến việc cài đặt các công cụ khác nhau tạo nên Kubernetes: kubeadm , kubelet , kubectl và kubernetes - cni. Mỗi công cụ sẽ có một cách cài đặt khác nhau:

  • kubelet: Tác nhân chạy trên mỗi node và xử lý giao tiếp của các master node để bắt đầu khối lượng công việc trong thời gian hoạt động của container. Nhập lệnh sau để cài đặt kubelet:

1

sudo apt install kubelet

  • kubeadm: Khởi tạo cụm Kubernetes. Nhập lệnh sau để cài đặt kubeadm:

1

sudo apt install kubeadm

  • kubectl: Công cụ giúp chạy các lệnh bên trong cụm Kubernetes. Thực hiện lệnh sau để cài đặt kubectl:

1

sudo apt install kubectl

  • kubernetes-cni: cho phép kết nối mạng trong các container để đảm bảo chúng có thể giao tiếp và trao đổi dữ liệu. Thực hiện lệnh sau để cài đặt:

1

sudo apt-get install -y kubernetes-cni

Bước 2: Vô hiệu hóa bộ nhớ trao đổi

Kubernetes không hoạt động trong hệ thống đang sử dụng bộ nhớ trao đổi. Do đó, nó phải bị vô hiệu hóa ở master node và worker node. Thực hiện lệnh sau để vô hiệu hóa bộ nhớ trao đổi:

1

sudo swapoff -a

Lệnh này sẽ vô hiệu hóa bộ nhớ trao đổi cho đến khi hệ thống được khởi động lại và phải tắt ngay cả sau khi khởi động lại. Lệnh này sẽ được thực hiện trên master node và worker node bằng cách chỉnh sửa tệp fstab và code dòng / swapfile bằng dấu # .

1

sudo nano /etc/fstab

Bên trong tệp, gõ dòng tệp swapfile như trong ảnh chụp màn hình bên dưới:

cách install Kubernetes on Ubuntu 20.04

Nếu bạn không thấy dòng swapfile, hãy bỏ qua nó. Lưu và đóng tệp khi bạn chỉnh sửa xong. Thực hiện theo quy trình tương tự cho cả hai nút. Bây giờ, cài đặt bộ nhớ trao đổi sẽ vẫn tắt, ngay cả sau khi máy chủ của bạn khởi động lại.

Bước 3: Đặt tên máy chủ

Các nút của bạn phải có tên máy chủ duy nhất để nhận dạng dễ dàng hơn. Nếu đang triển khai một cụm có nhiều nút, bạn có thể đặt cụm đó để xác định tên cho các Worker Node của mình, chẳng hạn như nút-1, nút-2, v.v. Như đã đề cập trước đó, chúng tôi đã đặt tên cho các nút của mình là kubernetes - master và kubernetes - công nhân . Chúng tôi đã thiết lập chúng tại thời điểm tạo máy chủ. Tuy nhiên, bạn có thể điều chỉnh hoặc đặt cài đặt của mình nếu bạn chưa làm như vậy từ dòng lệnh. Để điều chỉnh tên máy chủ trên Master Node, hãy chạy lệnh sau:

1

sudo hostnamectl set-hostname kubernetes-master

Trên nút worker, chạy lệnh sau:

1

sudo hostnamectl set-hostname kubernetes-worker

Bạn có thể đóng phiên cuối hiện tại và quay lại máy chủ để xem các thay đổi.

Bước 4: Cấp quyền Iptables xem lưu lượng truy cập

Để các Master Node và Worker Node nhìn thấy chính xác lưu lượng truy cập được bắc cầu, bạn nên đảm bảo net . cầu . bridge - nf - call - iptables được đặt thành 1 trong config. Trước tiên, hãy đảm bảo mô-đun br_netfilter được tải. Bạn có thể xác nhận điều này bằng cách ra lệnh:

1

lsmod | grep br_netfilter

Tùy chọn, bạn có thể tải nó một cách rõ ràng bằng lệnh:

1

sudo modprobe br_netfilter

Bây giờ, bạn có thể chạy lệnh này để đặt giá trị thành 1:

1

sudo sysctl net.bridge.bridge-nf-call-iptables=1

Bước 5: Thay đổi trình điều khiển Docker Cgroup

Theo mặc định, Docker cài đặt với " cgroupfs " làm trình điều khiển cgroup. Kubernetes khuyến nghị Docker nên chạy với " systemd " làm trình điều khiển. Nếu bạn bỏ qua bước này và cố gắng khởi tạo kubeadm trong bước tiếp theo, bạn sẽ nhận được cảnh báo sau trong terminal của mình:

1

2

[preflight] Running pre-flight checks

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/

Trên cả Master Node và Worker Node, hãy cập nhật cgroupdriver bằng các lệnh sau:

1

2

3

4

5

6

7

8

9

sudo mkdir /etc/docker

cat <

{ "exec-opts": ["native.cgroupdriver=systemd"],

"log-driver": "json-file",

"log-opts":

{ "max-size": "100m" },

"storage-driver": "overlay2"

}

EOF

Sau đó, thực hiện các lệnh sau để khởi động lại và kích hoạt Docker khi khởi động hệ thống:

1

2

3

sudo systemctl enable docker

sudo systemctl daemon-reload

sudo systemctl restart docker

Khi điều đó đã được thiết lập, chúng ta có thể tiến hành những điều thú vị, triển khai cụm Kubernetes!

Bước 6: Khởi tạo Kubernetes Master Node

Bước đầu tiên trong việc triển khai cụm Kubernetes là kích hoạt Master Node. Khi ở thiết bị đầu cuối của Master Node, hãy thực hiện lệnh sau để khởi tạo kubernetes - master :

1

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Nếu bạn thực thi lệnh trên và hệ thống của bạn không đáp ứng các yêu cầu dự kiến, chẳng hạn như RAM hoặc CPU tối thiểu như được giải thích trong phần Điều kiện tiên quyết , bạn sẽ nhận được cảnh báo và cụm sẽ không khởi động:

cách install Kubernetes on Ubuntu 20.04

Lưu ý: Nếu bạn đang xây dựng cho sản xuất, bạn nên luôn đáp ứng các yêu cầu tối thiểu để Kubernetes hoạt động trơn tru. Tuy nhiên, nếu bạn thực hiện hướng dẫn này cho mục đích học tập thì bạn có thể thêm cờ sau vào lệnh init kubeadm để bỏ qua các cảnh báo lỗi:

sudo kubeadm init -- bỏ qua - preflight - lỗi = NumCPU , Mem -- pod - mạng - cidr = 10.244.0.0 / 16

Ảnh chụp màn hình bên dưới cho thấy quá trình khởi tạo đã thành công. Chúng tôi cũng đã thêm cờ để chỉ định mạng pod có IP 10.244.0.0. Đó là IP mặc định mà kube -flannel sử dụng . Chúng ta sẽ thảo luận thêm về mạng pod trong bước tiếp theo.

cách install Kubernetes on Ubuntu 20.04

Ở đầu ra, bạn có thể thấy lệnh nối kubeadm (chúng tôi đã ẩn địa chỉ IP của mình) và một mã thông báo duy nhất mà bạn sẽ chạy trên Worker Node và tất cả các Worker Node khác mà bạn muốn tham gia vào cụm này. Tiếp theo, sao chép-dán lệnh này vì bạn sẽ sử dụng nó sau này trong Worker Node.

Trong đầu ra, Kubernetes cũng hiển thị một số lệnh bổ sung mà bạn nên chạy với tư cách người dùng thông thường trên Master Node trước khi bắt đầu sử dụng cụm. Hãy chạy các lệnh này:

1

2

3

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Bây giờ chúng ta đã khởi tạo Master Node. Tuy nhiên, chúng tôi cũng phải thiết lập mạng nhóm trên Master Node trước khi tham gia các Worker Node.

Bước 7: Triển khai mạng Pod

Mạng pod tạo điều kiện liên lạc giữa các máy chủ và nó cần thiết để cụm Kubernetes hoạt động bình thường. Bạn có thể đọc thêm về Mạng cụm Kubernetes từ các tài liệu chính thức. Chúng tôi sẽ sử dụng mạng Flannel pod cho hướng dẫn này. Flannel là một mạng lớp phủ đơn giản đáp ứng các yêu cầu của Kubernetes.

Trước khi triển khai mạng nhóm, chúng tôi cần kiểm tra trạng thái tường lửa. Nếu bạn đã bật tường lửa sau khi làm theo bước 5 của hướng dẫn thiết lập máy chủ Ubuntu , trước tiên bạn phải thêm quy tắc tường lửa để tạo ngoại lệ cho cổng 6443 (cổng mặc định cho Kubernetes). Chạy các lệnh ufw sau trên cả Master Node và Worker Node:

1

2

sudo ufw allow 6443

sudo ufw allow 6443/tcp

Sau đó, bạn có thể chạy hai lệnh sau để triển khai mạng nhóm trên Master Node:

1

2

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

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

Quá trình này có thể mất vài giây đến một phút tùy thuộc vào môi trường của bạn để tải mạng flannel. Chạy lệnh sau để xác nhận rằng mọi thứ đã được kích hoạt:

1

kubectl get pods --all-namespaces

Đầu ra của lệnh sẽ hiển thị tất cả trạng thái dịch vụ là đang chạy nếu mọi thứ đều thành công:

cách install Kubernetes on Ubuntu 20.04

Bạn cũng có thể xem tình trạng của các thành phần bằng lệnh get trạng thái thành phần:

1

kubectl get componentstatus

cách install Kubernetes on Ubuntu 20.04

Lệnh này có dạng ngắn gọn là cs:

1

kubectl get cs

cách install Kubernetes on Ubuntu 20.04

Nếu bạn thấy trạng thái không tốt, hãy sửa đổi các tệp sau và xóa dòng tại (spec->containers->command) có chứa cụm từ này - -- port = 0 :

1

sudo nano /etc/kubernetes/manifests/kube-scheduler.yaml

Làm tương tự với tập tin này:

1

sudo nano /etc/kubernetes/manifests/kube-controller-manager.yaml

Cuối cùng, khởi động lại dịch vụ Kubernetes:

1

sudo systemctl restart kubelet.service

Bước 8: Thêm các Worker Node vào cụm Kubernetes

Khi kubernetes - Master Node đã sẵn sàng và mạng nhóm đã sẵn sàng, chúng ta có thể kết nối các Worker Node của mình với cụm. Trong hướng dẫn này, chúng ta chỉ có một Worker Node, vì vậy chúng ta sẽ làm việc với nút đó. Nếu có nhiều nút thợ hơn, bạn luôn có thể làm theo các bước tương tự như chúng tôi sẽ giải thích bên dưới để tham gia cụm.

Đầu tiên, đăng nhập vào Worker Node của bạn trên một phiên cuối riêng biệt. Bạn sẽ sử dụng lệnh nối kubeadm được hiển thị trong thiết bị đầu cuối của bạn khi chúng tôi khởi tạo Master Node ở Bước 6 . Thực hiện lệnh:

1

sudo kubeadm join 127.0.0.188:6443 --token u81y02.91gqwkxx6rnhnnly --discovery-token-ca-cert-hash sha256:4482ab1c66bf17992ea02c1ba580f4af9f3ad4cc37b24f189db34d6e3fe95c2d

Bạn sẽ thấy đầu ra tương tự như ảnh chụp màn hình bên dưới khi hoàn tất việc tham gia cụm:

cách install Kubernetes on Ubuntu 20.04

Sau khi quá trình tham gia hoàn tất, hãy chuyển thiết bị đầu cuối của Master Node và thực hiện lệnh sau để xác nhận rằng nút worker của bạn đã tham gia cụm:

1

kubectl get nodes

Trong ảnh chụp màn hình đầu ra của lệnh trên, chúng ta có thể thấy nút worker đã tham gia vào cụm:

cách install Kubernetes on Ubuntu 20.04

Bước 9: Triển khai ứng dụng vào cụm Kubernetes

Tại thời điểm này, bạn đã thiết lập thành công cụm Kubernetes. Hãy làm cho cụm có thể sử dụng được bằng cách triển khai một dịch vụ cho cụm đó. Nginx là một máy chủ web phổ biến có tốc độ đáng kinh ngạc ngay cả với hàng nghìn kết nối. Chúng tôi sẽ triển khai máy chủ web Nginx vào cụm để chứng minh rằng bạn có thể sử dụng thiết lập này trong ứng dụng thực tế.

Thực thi lệnh sau trên Master Node để tạo triển khai Kubernetes cho Nginx:

1

kubectl create deployment nginx --image=nginx

Bạn có thể xem quá trình triển khai đã tạo bằng cách sử dụng lệnh mô tả triển khai :

1

kubectl describe deployment nginx

cách install Kubernetes on Ubuntu 20.04

Để làm cho dịch vụ nginx có thể truy cập được qua internet, hãy chạy lệnh sau:

1

kubectl create service nodeport nginx --tcp=80:80

cách install Kubernetes on Ubuntu 20.04

Lệnh trên sẽ tạo một dịch vụ công khai để triển khai Nginx. Đây là một triển khai nodeport , Kubernetes chỉ định cho dịch vụ một cổng trong phạm vi 32000 + .

Bạn có thể nhận được các dịch vụ hiện tại bằng cách ra lệnh:

Để xác minh rằng việc triển khai dịch vụ Nginx thành công, hãy thực hiện lệnh

1

kubectl get svc

cách install Kubernetes on Ubuntu 20.04

Bạn có thể thấy rằng cổng được chỉ định của chúng tôi là 32264 . Hãy lưu ý cổng được hiển thị trong thiết bị đầu cuối của bạn để sử dụng trong bước tiếp theo.gọi tới Worker Node từ Master Node. Thay thế IP Worker Node của bạn và cổng bạn nhận được từ lệnh trên:

1

curl your-kubernetes-worker-ip:32264

Bạn sẽ thấy đầu ra của chỉ mục Nginx mặc định . html :

cách install Kubernetes on Ubuntu 20.04

Theo tùy chọn, bạn có thể truy cập tổ hợp cổng và địa chỉ IP của Worker Node trong trình duyệt của mình và xem trang chỉ mục Nginx mặc định:

cách install Kubernetes on Ubuntu 20.04

Bạn có thể xóa một triển khai bằng cách chỉ định tên của triển khai đó. Ví dụ: lệnh này sẽ xóa triển khai:

1

kubectl delete deployment nginx

Việc install Kubernetes on Ubuntu 20.04 có thể đòi hỏi một số kinh nghiệm về hệ thống và mạng, nhưng với hướng dẫn chi tiết này, bạn có thể dễ dàng triển khai nền tảng quản lý container đáng tin cậy cho ứng dụng của mình.

SHARE