1: 應用滾動升級
操作功能:
應用滾動升級
操作步驟:
以redis-master爲例子,假定當前運行的redis-master Pod是1.0版本,現在要升級到2.0版本
創建redis-master-controller-v2.yaml的配置文件如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master-v2
labels:
name: redis-master
version: v2
spec:
replicas: 1
selector:
name: redis-master
version: v2
template:
metadata:
labels:
name: redis-master
version: v2
spec:
containers:
- name: master
image: kubeguide/redis-master:2.0
ports:
- containerPort: 6379
在配置文件中有幾處需要注意:
(1)RC的名字(name) 不能與舊的RC的名字相同
(2)在selector中應該至少有一個Label與舊的RC的label不同, 以標示其爲新的RC
上面的配置文件中增加了一個名爲version的Label與舊的RC進行區分。
執行kubectl rolling-update命令完成Pod的滾動升級
kubectl rolling-update redis-master -f redis-master-controller-v2.yaml
上面操作中等新的Pod啓動完成後,舊的Pod也會被全部銷燬,這樣就完成了容器集羣更新
另外一種方法:
直接使用kubectl rolling-update的命令加上--image參數指定新版本的鏡像
kubectl rolling-update redis-master --image=redis-master:v2
備註:執行kubectl rolling-update --rollback 即可完成Pod版本的回滾
2:設置iptables的FORWARD鏈
操作功能:
設置iptables的FORWARD鏈,Docker從1.13版本開始調整了默認防火牆規則,禁用了iptables filter表中的FORWARD鏈,會引起集羣中跨Node的Pod無法通信
操作步驟:
iptables -P FORWARD ACCEPT
iptables -nvL #查看命令
3:Kubernetes 關閉系統的Swap
操作功能:
Kubernetes 1.8要求關閉系統的Swap,如果不關閉,默認配置下kubelet將無法啓動
操作步驟:
通過kubelet啓動參數--fail-swap-on=false更改限制
4:集羣成功部署之後,kubectl命令獲取信息出錯
操作功能:
集羣成功部署之後,kubectl命令獲取信息出錯
操作步驟:
#master節點上 export KUBECONFIG=/etc/kubernetes/admin.conf
# node節點上 export KUBECONFIG=/etc/kubernetes/kubelet.conf
5:kubectl proxy繞過https,採用http訪問
操作功能:
kubectl proxy繞過https,採用http訪問
操作步驟:
kubectl proxy --address="0.0.0.0" --port=8080 --accept-hosts='^*$'
這樣就可以通過 kubectl -s http://masterIP:8080 apply -f *.yaml
6: 清理集羣
操作功能:
清理集羣
操作步驟:
# 刪除節點
kubectl drain nodeName --delete-local-data --force --ignore-daemonsets
kubectl delete node nodeName
#清理
kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -rf /etc/kubernetes/
systemctl stop kubelet;
docker rm -f -v $(docker ps -q);
find /var/lib/kubelet | xargs -n 1 findmnt -n -t tmpfs -o TARGET -T | uniq | xargs -r umount -v;
rm -rf /var/lib/kubelet /var/lib/etcd;
#記住要清理iptables
iptables -FXZ
7:查看端口連接個數
操作功能:
查看端口連接個數
操作步驟:
netstat -anopt | grep 30039 | wc -l