暑假期間,剛好以機會接觸到 kubernetes 這套用於自動部署、擴充和管理容器化(containerized)應用程式的開源系統,也簡稱為 K8S ,更多的介紹歡迎參閱 kubernetes 官方網站,這裡我們介紹一下關於如何架設一個 kubernetes 的環境。因為目前只有一台虛擬機,所以先做單機連線,以後有機會再來做做看多機互聯。
安裝 kubernetes
安裝軟件包以允許通過 HTTPS 使用 repository
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
新增 Docker 的官方 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
新增 docker apt repository
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安裝docker ce。
apt-get update && apt-get install docker-ce=18.06.0~ce~3-0~ubuntu
Setup daemon
先使用 vim 編譯器
vim /etc/docker/daemon.json
打開檔案後,再複製下方程式碼貼上修改,儲存後離開 vim
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
mkdir -p /etc/systemd/system/docker.service.d
重啟 docker
systemctl daemon-reload
systemctl restart docker
接下來,安裝 kubeadm, kubeadm, kubectl 等 K8S 相關套件
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
這裡可以指定想要安裝的版本
apt-get install -y kubelet=1.15.6-00 kubeadm=1.15.6-00 kubectl=1.15.6-00
apt-mark hold kubelet kubeadm kubectl
記得關閉 swap
swapoff -a
編輯 DNS
請將裡面數字改為 8.8.8.8
vim /etc/resolv.conf
*設定 kubectl *
kubeadm init 需要一些時間喔
kubeadm init --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
建立 flannel CNI(需要對照版本)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
最後再汙染節點就可以()一般 master node 是不會作為 work node 使用的,所以需要多這一個步驟
kubectl taint nodes --all node-role.kubernetes.io/master-