在Ubuntu 20.04上安裝K8S環境
ifan 2020.12.28
背景
在實驗室跟導師進行SONIC系統的研究學習,需要使用Kubernetes來管理docker容器,於是自己摸索了在Ubuntu 20.04上面安裝K8S環境,記錄在此,希望能幫到有需之人。
安裝步驟
准備
1.禁止swap分區
安裝k8s的必須環節,筆者目前還不知道原因。
暫時禁止:
sudo swapoff -a
永久禁止:
sudo vi /etc/fstab #注釋掉swap一行
2.更改net.bridge.bridge-nf-call-iptables的值為1.(Ubuntu 20.04默認為1)
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
3.安裝Docker
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
開始安裝K8S
1.安裝kubeadm kubeadm kubectl
sudo apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF
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
因為筆者沒有梯子,所以這里使用了阿里雲的鏡像源安裝,也可以直接用官方源安裝,在此不再提供路徑。
2.初始化
sudo kubeadm init
初始化成功后會顯示如下結果:
其中也給出了接下來要進行的操作:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.添加網絡插件
CNI bridge
mkdir -p /etc/cni/net.d
cat >/etc/cni/net.d/10-mynet.conf <<-EOF
{
"cniVersion": "0.3.0",
"name": "mynet",
"type": "bridge",
"bridge": "cni0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/16",
"routes": [
{"dst": "0.0.0.0/0"}
]
}
}
EOF
cat >/etc/cni/net.d/99-loopback.conf <<-EOF
{
"cniVersion": "0.3.0",
"type": "loopback"
}
EOF
flannel
需要在kubeadm init 時設置 --pod-network-cidr=10.244.0.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
weave
sysctl net.bridge.bridge-nf-call-iptables=1
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
calico
需要 kubeadm init 時設置 --pod-network-cidr=192.168.0.0/16
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/install
部署其他常用插件可自行百度。
4.查看是否安裝成功
kubectl get pods -n kube-system
出現如下結果,則安裝成功。
如有問題,可聯系筆者: ifan0108@163.com