debain 10.6 安裝 kubernetes(k8s) 全流程日誌
阿新 • • 發佈:2021-12-07
debian kubernetes 安裝記錄
參考來源:https://blog.csdn.net/cg980925441/article/details/114649809
個人使用雲伺服器提供的 debain10.6 安裝 kubernetes 的日誌(已刪減中間菜的坑,僅保留有效的操作) 。
- 注意坑1:不通雲服務商提供的 debain映象可能略有環境上的差別,比如我這個就需要自己安裝gnupg2 ,僅供參考。遇到問題百度解決。
下文中的 “所有節點” 包含 master/node1 節點
下文中的 “所有子節點” 不包含 master 節點的node2、node3、node4
下文中的 “主節點” 指 master/node1 節點
為每個伺服器設定不同的名稱
在不同的伺服器上執行命令
node1:
hostnamectl set-hostname --static node1
node2:
hostnamectl set-hostname --static node2
node3
hostnamectl set-hostname --static node3
node4
hostnamectl set-hostname --static node4
所有節點:配置節點之間的主機名和ip對映
編輯 /etc/hosts 檔案,在所有的伺服器上
172.16.0.2 node1 172.16.0.3 node2 172.16.0.4 node3 172.16.0.5 node4
所有節點:禁用swa
swapoff -a
# 如果需要永久禁用
vi /etc/fstab
# 然後將 swap 那一行註釋掉,最前面加上 # ,儲存退出
所有節點:安裝key管理器
apt update -y && apt install -y gnupg2 apt-transport-https software-properties-common ca-certificates
所有節點:加速地址
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main">>/etc/apt/sources.list.d/kubernetes.list sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
所有節點:為 kubernetes 源新增金鑰
踩坑日記,這一步必須要安裝 gnupg2 否則提示錯誤
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
所有節點:更新並安裝 kubeadm
apt update -y && apt install -y kubeadm docker-ce
# 踩坑日記:安裝docker-ce 的驅動,和 kubernetes 保持一致 systemd ,否則後面初始化時,kubelet無法啟動
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
systemctl daemon-reload && systemctl restart docker
主節點:安裝管理工具
apt install -y kubectl
主節點:初始化 k8s
踩坑日記:後面的 --image-repository registry.aliyuncs.com/google_containers 是用於拉取初始化映象加速用的,預設從海外拉取很慢。
# 先拉取一個配置網路的映象 ,最新版本是 v0.15.1
# docker pull quay.io/coreos/flannel:v0.15.1
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
# 踩坑日記!!!最大的一個坑,一定要設定pod的cidr網路地址,coredns依賴 flannel,但是直接應用 flannel沒有用,flannel配置的網路和kubeadm自己生成的網路地址是不一樣的,導致永遠卡在 Pending、ContainerCreating、Error、CrashLoopBackOff
kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 配置環境變數,kubectl 命令依賴此配置
export KUBECONFIG=/etc/kubernetes/admin.conf
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
kubectl get pod -n kube-system
kubectl get pods --all-namespaces
然後是漫長的等待,因為要從伺服器拉取所需要映象,看網速吧。
所有子節點:如果沒有意外,master 初始化成功
產生配置資訊
# 這個資訊來自 kubeadm init ,每個人的都不同哦,這裡是作為參考展示
kubeadm join 172.16.0.2:6443 --token ygprv7.jp1nfwkkhvstlifw --discovery-token-ca-cert-hash sha256:9e4be9f3f5b9bb5b18aca6c0d39757d5b423e5d0b4979fd1ca3df567dfeabaf6
所有節點:初始化flannel網路
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml