0、簡介
這里只用3臺服務器來做一個簡單的集群
地址 | 主機名 |
192.168.160.40 | kuber-master-1 |
192.168.160.41 | kuber-master-2 |
192.168.160.42 | kuber-node-1 |
1、關閉三個服務
(1)防火墻
systemctl stop firewalld
(2)Selinux
setenforce 0
(3)swap分區
swapoff -a
2、修改主機名,添加hosts文件
hostnamectl set-hostname kuber-master-1
hostnamectl set-hostname kuber-master-2
hostnamectl set-hostname kuber-node-1
修改/etc/hosts文件
192.168.160.40 kuber-master-1
192.168.160.41 kuber-master-2
192.168.160.42 kuber-node-1
3、修改內核參數
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1"?>> /etc/sysctl.conf
4、安裝docker/kubedam/kubelet
(1)安裝docker
(2)安裝kubeadm/kubelet
安裝kubernetes的鏡像源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
進行安裝
yum remove -y kubelet kubeadm kubectl
yum install -y kubelet-1.23.17?kubeadm-1.23.17?kubectl-1.23.17
systemctl enable kubelet.service
5、部署k8s master節點
kubeadm init \
--kubernetes-version=1.23.17 \
--apiserver-advertise-address=192.168.160.40 \(這里注意轉成自己的IP地址)
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 \
--pod-network-cidr=10.122.0.0/16
問題:[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp [::1]:10248: connect: connection refused.
如果碰到這個問題,因為docker的版本較高用的Cgroup是cgroupfs
如果這樣的話,需要修改,docker默認的使用的cgroup驅動
vim /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"]
}
需要重啟
systemctl restart docker
如果沒有問題就執行下邊的內容,這個在初始完master后會提示讓執行這個。??
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
6、將node節點加入其中
下邊這段命令,在初始完master后會有提示,這里是我的樣例。
kubeadm join 192.168.160.40:6443 --token tn624x.ks0y432mi2y6ks2b --discovery-token-ca-cert-hash sha256:e78481f3fe23b94c24df8159974ad9e4eb6ed8efd590105d6c3ba2cf3edb0490
7、將master 2節點加入
執行下邊命令獲取key
kubeadm init phase upload-certs --upload-certs
最后一行是key
將加入node節點的命令和這個拼接起來
kubeadm join 192.168.160.40:6443 --token tn624x.ks0y432mi2y6ks2b --discovery-token-ca-cert-hash sha256:e78481f3fe23b94c24df8159974ad9e4eb6ed8efd590105d6c3ba2cf3edb0490? ? ? ? ? --control-plane --certificate-key xxxxxxx(上邊執行命令后的key)??
這一部分是需要增加的,之后在master2
上執行。