k8s 常用命令

    # 启动etcd存储服务
    service etcd start

    # 运行master
    cd /opt/kubernetes/bin
    ./apiserver.sh 192.168.220.135 http://192.168.220.135:2379
    ./scheduler.sh 192.168.220.135
    ./controller-manager.sh 192.168.220.135

    # 运行node(需要先禁用swap交换缓存,运行命令 swapoff -a)
    cd /opt/kubernetes/bin
    ./kubelet.sh 192.168.220.138 192.168.220.139 10.10.10.2
    ./proxy.sh 192.168.220.135 192.168.220.136

    # node 节点日志
    tail -f /var/log/messages

    # 查看集群状态
    kubectl get node
    kubectl get componentstatus

    # 查看集群所有信息
    kubectl get all

    # 查看nginx服务所在docke容器节点,一个服务也是一个负载均衡
    kubectl get  ep nginx

    # 命令行管理对象实例
      # 1.基于nginx镜像,创建hello-world pod
      kubectl run hello-world --replicas=1 --labels="app=example" --image=nginx:latest --port=80
      # 2.以上命令会自动创建rs,查看rs
      kubectl get rs
      kubectl describe rs rs_name
      # 3.以上命令会自动创建deployment,deployment负责管理rs和pod
      kubectl describe deploy/hello-world
      kubectl edit deploy hello-world
      # 4.声明服务
      kubectl expose deployment hello-world --port=88 --target-port=80 --name=example-service    
      kubectl get mvc

    # pod扩容
    kubectl sacle deployment --replicas=10 hello-world

    # pod删除,pod不能直接删除否则还会重新创建,需要删除pod的控制器
    kubectl delete deployment hello-world

    # pod日志实时查看
    kubectl logs -f pod/hello-world-cc85df    

    # 查看pod里面容器的日志
    kubectl logs pod-test -c hello-write

    # 查看容pod里面容器的环境变量
    exec nginx-deployment-5b4b59b4b8-ktxcx env

    # pod中镜像升级
    kubectl set image deploy/nginx-deployment nginx=nginx:1.11

    #实时观察升级发布状态:滚动升级,杀掉一个pod,升级一个pod然后再启动该pod。接着再杀掉一个pod。。。
    kubectl rollout status deployment/nginx-deployment

    #查看deployment历史修订版本
    kubectl rollout history deployment/nginx-deployment

    # docker镜像暴力删除
    rm -rf /var/lib/docker

    # 镜像加速器(docker17.05 以上版本执行)
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8ca15b27.m.daocloud.io

    # 支持三种策略:
    Always:当容器终止退出后,总是重启容器,默认策略。
    OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
    Never:当容器终止退出,从不重启容器。

    # 进入pod
    kubectl exec pod-test -it bash

    # 进入pod中的容器运行命令以及排错
    kubectl exec pod-test -c hello-world -it bash

    # 替换pod
    kubectl replace -f pod.yaml --force

    # 指定命名空间查看pod
    kubectl get pods --namespace=kube-system
    
    # 创建flanneld.service
[Unit]
Description=flanneld overlay address etcd agent
After=network.target
Before=docker.service

[Service]
Type=notify
ExecStart=/usr/bin/flanneld -etcd-endpoints=http://192.168.220.138:2379

[Install]
RequiredBy=docker.service
WantedBy=multi-user.target
    
    # 启动flanneld 【http://time-track.cn/deploy-kubernetes-step-by-step-on-trusty-section-2.html】
    systemctl restart flanneld.service
    
    # 查看flanneld使用的网段
    cat /run/flannel/subnet.env
    
    # 让docker在自己的docker0上面使用自定义网段
    Node➜  ~ cat /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --bip=10.1.48.1/24 --mtu=1472

    # 进入容器测试
    docker run -it busybox sh
    
    # 截获本机和其他主机的通信
    tcpdump host 192.168.220.138 and 192.168.220.139
    
    # 截获主机80端口发出和接收的http数据包
    tcpdump tcp port 80 and host 192.168.220.138
    
    # 查询etcd 数据
    etcdctl ls /coreos.com/network/subnets
原文地址:https://www.cnblogs.com/rigid/p/9050333.html