Hiển thị các bài đăng có nhãn docker. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn docker. Hiển thị tất cả bài đăng

Chủ Nhật, 18 tháng 4, 2021

[k8s] Hướng dẫn cài đặt kubernetes offline (master single node)

 I. References

  1. https://kubernetes.io/docs/setup/production-environment/
  2. https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
  3. https://www.centlinux.com/2019/04/install-kubernetes-k8s-offline-on-centos-7.html
  4. https://docs.genesys.com/Documentation/GCXI/9.0.0/Dep/DockerOffline

II. Setup

Yêu cầu sudo hoặc quyền root, server Centos 7+

1. Cài đặt Container Runtimes

Để chạy các container (POD) trên mỗi node, cần phải cài đặt CR (container runtime) trên mỗi node.

Có nhiều loại CR, 3 loại thường dùng cài với Kubernetes trên linux:

 . Cgroup Driver

Dùng để quản lý các tài nguyên cấp cho các tiến trình, trên linux thường dùng Systemd

Trong hướng dẫn này sử dụng Docker làm CR cho K8s.

a. Hướng dẫn cài Docker, chi tiết tham khảo trang Docker

https://docs.docker.com/engine/install/#server

Tải file rpm để cài đặt trên các server offline

b. Cấu hình Docker deamon, sử dụng Systemd để quản lý container's cgroups

Chỉnh sửa file cấu hình docker deamon : /etc/docker/daemon.json

sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

Note: overlay2 is the preferred storage driver for systems running Linux kernel version 4.0 or higher, or RHEL or CentOS using version 3.10.0-514 and above.

c. Restart docker

sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker

Note:

For more information refer to

2. Có 3 tool được khuyến nghị bởi K8s

Trong bài viết này sẽ hướng dẫn cài Kubeadm với master single node

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

a. Bật mode bridged traffic trên iptables

. Check mode br_netfilter

lsmod | grep br_netfilter

  • Nếu chưa bật thì gọi lệnh sau để bật

sudo modprobe br_netfilter

  • Set các tham số forward network

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

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

For more details please see the Network Plugin Requirements page.

b. Mở iptables tương ứng các port sau

  • Control-plane nodes

ProtocolDirectionPort RangePurposeUsed By
TCPInbound6443*Kubernetes API serverAll
TCPInbound2379-2380etcd server client APIkube-apiserver, etcd
TCPInbound10250kubelet APISelf, Control plane
TCPInbound10251kube-schedulerSelf
TCPInbound10252kube-controller-managerSelf

  • Worker nodes

ProtocolDirectionPort RangePurposeUsed By
TCPInbound10250kubelet APISelf, Control plane
TCPInbound30000-32767NodePort Services†All

c. Cài đặt Kubeadm, Kubelet và Kubectl

Cài đặt Kubeadm, Kubelet, Kubectl trên tất cả các server vật lý.

  • kubeadm: the command to bootstrap the cluster.

  • kubelet: the component that runs on all of the machines in your cluster and does things like starting pods and containers.

  • kubectl: the command line util to talk to your cluster.

 Chuẩn bị 1 server kết nối tới internet để tải package và images phục vụ cho việc cài đặt.