Kubernetes常见运维操作(二)

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

发布了108 篇原创文章 · 获赞 14 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/CodeAsWind/article/details/104473989