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