k8s使用kubeadm安裝-ubuntu

環境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

  • 編輯ubuntu apt使用阿里雲鏡像 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
  • 確保 iptables 工具不使用 nftables 後端

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

  • 安裝docker

# 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
  • 安裝 kubeadm、kubelet 和 kubectl
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
  •  禁用swap
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

相關文章
相關標籤/搜索