一、服務器配置
1.集群數量
節點 | ip | 備注 |
---|---|---|
master | 10.0.4.9 | 安全組放通,3節點內網互通 |
node1 | 10.0.4.14 | 安全組放通,3節點內網互通 |
node2 | 10.0.4.17 | 安全組放通,3節點內網互通 |
2.配置服務器(每個節點執行)
執行步驟1
#在對應的節點執行
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
執行步驟2
# 添加機器映射
cat <<EOF >> /etc/hosts
10.0.4.9 master
10.0.4.14 node1
10.0.4.17 node2
EOF
# 關閉安全機制,減少配置復雜性
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
systemctl stop firewalld
systemctl disable firewalld
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
sysctl -p
# 添加yum源
cat <<EOF > kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 執行安裝
yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4 docker-cesystemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker# kubernetes 官方推薦 docker 等使用 systemd 作為 cgroupdriver,否則 kubelet 啟動不了
cat <<EOF > daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
mv daemon.json /etc/docker/
# 重啟加載生效
systemctl daemon-reload
systemctl restart docker
執行步驟3(master節點執行)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr 10.0.0.0/16
# 初始化集群控制臺 Control plane
# 失敗了可以用 kubeadm reset 重置
# 記得把 kubeadm join xxx 保存起來
# 忘記了重新獲取:kubeadm token create --print-join-command
# 復制授權文件,以便 kubectl 可以有權限訪問集群
# 如果你其他節點需要訪問集群,需要從主節點復制這個文件過去其他節點
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 在其他機器上創建 ~/.kube/config 文件也能通過 kubectl 訪問到集群
執行步驟4(node節點執行)
kubeadm join xxx
執行后就可以在master節點執行,可以看到status是NotReady,這里是因為沒有安裝網絡插件
kubectl get nodes
執行步驟5(master節點執行)
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 注意這里需要去修改下這個配置文件的網段
kubectl apply -f kube-flannel.yml
執行完后,等待一會兒就可以看到集群Ready了
如果還是NotReady的話,可以執行以下命令來進行排查
journalctl -u kubelet -f
kubectl get all --all-namespaces
kubectl los <NAME> -n <namespace>
如果還有問題的話,歡迎評論一起交流溝通