环境:
Ubuntu 20.04 虚拟机
Kubernetes 1.24.0
Kubernetes dashboard 2.6.0
设备
k8smaster 192.168.187.133
k8snode 192.168.187.132
1. 设置root登录: 所有主机都需要操作
sudo passwd root
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes # 添加
sudo systemctl restart sshd.service
2. 修改主机信息: 所有主机都需要操作
k8smaster:
vi /etc/hostname
k8smaster
vi /etc/hosts
192.168.187.133 k8smaste # 添加
192.168.187.132 k8snode # 添加
k8snode:
vi /etc/hostname
k8snode
vi /etc/hosts
192.168.187.133 k8smaste # 添加
192.168.187.132 k8snode # 添加
3. 禁用 swap:所有主机都需要操作
swapoff -a && sed -i '/swap/d' /etc/fstab
4. 修改配置:所有主机都需要操作
# Enable kernel modules
sudo modprobe overlay && \
sudo modprobe br_netfilter
# Add some settings to sysctl
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# Reload sysctl
sudo sysctl --system
5.Docker 安装:所有主机都需要操作
apt-get remove docker docker-engine docker.io containerd runc
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
6.安装 k8s:所有主机都需要操作
sudo apt update && \
sudo apt -y install curl apt-transport-https
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update && \
sudo apt -y install vim git curl wget kubelet kubeadm kubectl && \
sudo apt-mark hold kubelet kubeadm kubectl
7.配置docker所有主机都需要操作
# Create required directories
sudo mkdir -p /etc/systemd/system/docker.service.d
# Create daemon json config file
sudo tee /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# Start and enable Services
sudo systemctl daemon-reload && \
sudo systemctl restart docker && \
sudo systemctl enable docker
8. 拉取k8s镜像:所有主机都需要操作(需要翻墙)
sudo kubeadm config images list
sudo kubeadm config images pull
9. kubeadm建立集群 :所有主机都需要操作
k8smaster:
sudo kubeadm init \
--pod-network-cidr=192.168.0.0/16 \
--upload-certs \
--control-plane-endpoint=k8smaster
mkdir -p $HOME/.kube && \
sudo cp -f /etc/kubernetes/admin.conf $HOME/.kube/config && \
sudo chown $(id -u):$(id -g) $HOME/.kube/config
k8snode:
kubeadm join k8smaster:6443 --token vdlbxn.xx2xe1a9p14mhwsf --discovery-token-ca-cert-hash sha256:bae8797729527fb55de963dd768b4257ea0c6ae4974dcea267c78b1d1237c223
10. 安装网络插件:k8smaster操作
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
11. 查看安装状态
kubectl get nodes -o wide
pod显示全为Running, node节点全为ready说明安装成功,集群可以使用