環境ubuntu20.04node
參考 https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/linux
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/git
sudo vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacygithub
# step 1: 安裝必要的一些系統工具docker
sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書json
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟件源信息ubuntu
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新並安裝Docker-CE後端
sudo apt-get -y update sudo apt-get -y install docker-ce
sudo bash -c "cat > /etc/docker/daemon.json" <<EOF { "registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF
sudo mkdir -p /etc/systemd/system/docker.service.d
# Restart Dockerapi
sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl enable docker
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
sudo systemctl enable --now kubelet sudo systemctl daemon-reload sudo systemctl restart kubelet
sudo swapoff -a #暫時關閉
# 永久關閉,註釋掉swap那一行,推薦永久關閉 ctrl+s保存, ctrl+x退出bash
sudo nano /etc/fstab
初始化集羣(kubernetes-version版本號需修改成yum安裝對應的版本)
sudo kubeadm init \ --apiserver-advertise-address=192.168.1.30 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.3 \ --pod-network-cidr=10.244.0.0/16
沒有問題的話。有如下成功標誌:
Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.1.10:6443 --token zj9sed.nsv0mr8ym228qpq6 \ --discovery-token-ca-cert-hash sha256:df276fa7c8551cb914deeb3a73c9705a5f77081c092e2dbd47c29a06a50f6ce8
說明1,執行如下操做,已經寫得很清楚了。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
說明2,你須要安裝一個網絡(You should now deploy a pod network to the cluster.) 我選擇flannel, 簡單好用。 參考此頁面 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
說明3. 在其它機器上,加入node節點(node節點除了不執行初始化集羣,上面全部都要執行)
sudo kubeadm join 192.168.1.30:6443 --token 4c4e3p.afglzv3elo4uc8ri \ --discovery-token-ca-cert-hash sha256:8b2b67ba80ce9f89bc019b7161cc9bbef970241532a76e8d0e09dc1fb7a5fa7b
說明4. node節點也能夠執行kubectl等命令
mkdir -p $HOME/.kube/ #192.168.1.30爲master節點,根據實際狀況替換本身的節點 scp name@192.168.1.30:$HOME/.kube/config $HOME/.kube/config
說明5. master也能夠安裝pod
kubectl taint nodes --all node-role.kubernetes.io/master-
測試是否安裝成功,看READY是否是1/1, 狀態是否爲Running
kubectl get pods -A -o wide
最後效果
sudo kubeadm reset && systemctl restart kubelet sudo rm /etc/kubernetes/ -fR sudo rm $HOME/.kube -fR sudo rm /var/lib/etcd -fR sudo rm /etc/cni/net.d -fR