環境準備
準備3台VM當作master和node
圖為ubuntu1(master)、ubuntu2(node1)、ubuntu3(node2)
安裝Docker
更新ubuntu1
apt-get update
在三台VM上安裝docker.io
1 | apt-get install –y docker.io |
安裝Kubeadm, kubelet, kubectl
三台VM上皆執行以下指令
1 | apt-get update && apt-get install -y apt-transport-https |
Initial之後,會出現initial成功訊息,並顯示下列指令,請在Master上執行
1 | mkdir -p $HOME/.kube |
Join node
Initial後出現的訊息中,會有一段key,請將這段指令複製起來,並貼在兩台node上執行
執行畫面如下
這樣Cluster就完成囉!!
安裝網路
在Master上輸入指令
1 | kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml |
查看DNS狀態,剛開始dns還是pending狀態,等過一段時間後就會是running狀態囉
1
kubectl taint nodes --all node-role.kubernetes.io/master
若要將master設定為可佈署的node,可以執行這行指令
網路安裝完成
測試叢集
Run 一個nginx看看~~
建立nginx pod1
kubectl run my-nginx --image=nginx --replicas=2 --port=80
1
kubectl get pods
剛開始的狀態還是ContainerCreating
等一段時間後,就都會是Running狀態囉1
kubectl get deployment
在get deployment上也可以看到nginx
產生IP可供外連1
kubectl expose deployment my-nginx --port=80 --type=NodePort
1 | kubectl get services |
也可將後面的type改成LoadBalancer
用本機的IP & 30223 Port連nginx頁面
佈署Nginx成功~~
K8S倒回指定版本
先將目前K8S環境reset1
kubeadm reset
移除kubeadm、kubelet1
apt-get remove kubeadm kubelet
執行autoremove避免殘留1
sudo apt autoremove
下載指定版本的kubeadm、kubelet
若想知道可下載的版本列表,請輸入以下指令1
apt-cache madison kubeadm
這邊以1.10.5-00為例1
apt-get install kubeadm=1.10.5-00 kubelet=1.10.5-00
接下來就可以輸入master的join key到你的node裡面囉!
指令補充
kubeadm reset 重設所有網路設定
kubectl cluster info 顯示叢集資訊
kubectl config view 查看kubeconfig的設定
kubectl logs
kubectl exec 進入容器內下指令
kubectl top 查看CPU、記憶體