一、集群节点准备
| ip | 主机名称 | 操作系统 |
|---|---|---|
| 192.168.124.10 | master-1 | 18.04.5 LTS (Bionic Beaver) |
| 192.168.124.11 | node-1 | 18.04.5 LTS (Bionic Beaver) |
| 192.168.124.12 | node-2 | 18.04.5 LTS (Bionic Beaver) |
![]() |
二、安装前主机环境准备 (所有主机都需要进行)
1、配置主机名解析
root@master:~# echo 192.168.124.10 master >> /etc/hosts
root@master:~# echo 192.168.124.11 node1 >> /etc/hosts
root@master:~# echo 192.168.124.12 node2 >> /etc/hosts
root@node1:~# echo 192.168.124.10 master >> /etc/hosts
root@node1:~# echo 192.168.124.11 node1 >> /etc/hosts
root@node1:~# echo 192.168.124.12 node2 >> /etc/hosts
root@node2:~# echo 192.168.124.10 master >> /etc/hosts
root@node2:~# echo 192.168.124.11 node1 >> /etc/hosts
root@node2:~# echo 192.168.124.12 node2 >> /etc/hosts
root@master:~# hostnamectl set-hostname master
root@node1:~# hostnamectl set-hostname node1
root@node2:~# hostnamectl set-hostname node2
2、关闭防火墙和SELIUNX
## 防火墙查看
root@node1:~# ufw status
Status: inactive ## 防火墙不活跃状态
## 关闭防火墙
root@node1:~# ufw disable
Firewall stopped and disabled on system startup
## 防火墙永久关闭
root@node1:~# systemctl disable ufw
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable ufw
Removed /etc/systemd/system/multi-user.target.wants/ufw.service.
## 查看防火墙状态
root@node1:~# ufw disable
Firewall stopped and disabled on system startup
三、安装容器运行时- containerd
先卸载已经安装的docker
apt-get remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine docker-ce containerd -y
如果服务器没有默认的docker源,首先配置源:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装Containerd
apt-get install containerd.io -y
配置Containerd的内核
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system
创建Containerd的配置文件
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
修改配置文件:
打开/etc/containerd/config.toml
把SystemdCgroup = false修改成SystemdCgroup = true
把sandbox_image = "k8s.gcr.io/pause:3.6"修改成sandbox_image="registry.aliyuncs.com/google_containers/pause:3.7"
# 启动Containerd
systemctl daemon-reload
systemctl restart containerd
ctr plugin ls
四、安装kubernetes集群
1、安装 kubectl kubelet kubeadm,并初始化集群
# 添加apt-key
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" >/etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet=1.25.0-00 kubeadm=1.25.0-00 kubectl=1.25.0-00
sudo apt-mark hold kubelet kubeadm kubectl
swapoff -a
vim /etc/fstab 注释自动挂载swapoff
kubeadm config images pull \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version 1.25.0
kubeadm init --apiserver-advertise-address 192.168.0.100 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --cri-socket "unix:///var/run/containerd/containerd.sock" --kubernetes-version 1.25.0
2、安装网络插件-calico
安装calico的版本
registry.cn-beijing.aliyuncs.com/dotbalo/cni:v3.24.0
镜像地址修改为国内仓库地址

3,集群验证
root@master:~# kubectl run bs --image=busybox:1.28.4 -- sleep 24h
pod/bs created
root@master:~# kubectl get pod
NAME READY STATUS RESTARTS AGE
bs 0/1 ContainerCreating 0 8s
root@master:~# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
bs 1/1 Running 0 19s 172.17.166.130 node1 <none> <none>
root@master:~# kubectl exec -it bs -- /bin/bash
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "9752f71b442b3c3a5e53e69a2a7ce7f10293bbb67bcb594a73825099c0098644": OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
root@master:~# kubectl exec -it bs -- sh
/ # ping www.baidu.com
PING www.baidu.com (182.61.200.7): 56 data bytes
64 bytes from 182.61.200.7: seq=1 ttl=48 time=38.630 ms
64 bytes from 182.61.200.7: seq=2 ttl=48 time=38.006 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max = 38.006/38.318/38.630 ms
/ # nslookup kubernetes.default.svc.cluster.local
Server: 10.96.0.10
Address 1: 10.96.0.10
nslookup: can't resolve 'kubernetes.default.svc.cluster.local'
/ # exit
command terminated with exit code 1
root@master:~# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 20m
root@master:~#

1407

被折叠的 条评论
为什么被折叠?



