docker集群常用命令

docker集群常用命令

docker swarm

要求

一个 Swarm 集群至少需要一个 Manager 节点,如果有多个,则推选一个为 Leader;Worker 可以有零个至多个。

集群的创建与销毁

  • 创建 Manager
  docker swarm init --advertise-addr xxx.xxx.xxx.xxx
  • 创建 Worker
  docker swarm join -token ******
  • 查看 token
  docker swarm join-token manager/woker
  • 查看 node
  doker node ls
  • worker 离开集群
  docker swarm leave
  • Manager 离开集群
  docker swarm leave --force

节点管理

  1. AVAILABILITY 的三种状态

    • Active:调度器能够将任务安排到这个节点
    • Pause:调度器不能将新的任务安排到这个节点,但是已有的任务会继续运行
    • Drain:调度器不能安排新的任务到这个节点,同时这个节点以运行的任务将被停止,分配到其他的节点上
  2. MANAGER STAUTS 的状态

    • Leader:主要管理者节点
    • Reachable:如果 Leader 节点不可用,则这这些节点有资格选举为新的 Leader
    • Unavailable:该节点不能和其他 Manager 节点产生任何联系,
      这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点
  3. 检查节点的详细信息

   docker node inspect <node-id> --pretty
  1. 变更节点可用性
   docker node update --availability <status> <node>
  1. 升级降级节点
   1. 升级
   docker node promote <node>
   2. 降级
   docker node demote <node>
  1. Service 部署

    1. 创建服务
      docker service create --name <name> <image>
  1. 查看服务
      docker service ls
  1. 更新服务
      docker service update --publish-add 8080:80 <name>
  1. 回滚服务
      docker service rollback <name>
  1. 扩容服务
      docker service scale <name>=<int num>
  1. 移除服务
      docker service remove <name>
  1. 列出服务
      docker service ls
      docker service ps <name>
      docker service inspect <name>
  1. Service 存储

    1. 数据卷挂载
      docker service create \
      --mount type=volume,src=<volume-name>, dst=<container-path> \
      --name <name> \
      <image>
  1. 数据卷创建
      docker volume create <volume-name>
  1. 数据卷详细信息
      docker volume inspect <volume-name>
  1. 删除数据卷
      docker volume rm <volume-name>
  1. 批量删除未挂载数据卷
      docker volume prune
  1. Docker Stack

    1. 部署 stack
      docker stack deploy [option] STACK
      ps: docker stack deploy -c compose.yaml <name>
  1. 列出 Stack
      docker stack ls
  1. 服务列表
      docker stack services <stack-name>
  1. 任务列表
      docekr stack ps <stack-name>
  1. 更新 stack
      # 重新部署即可
      docker stack deploy [option] STACK
  1. 删除 stack
      docker stack rm <stack-name>

kubernetes

  1. 集群的创建与加入

    1. 初始化集群主节点
      kubeadm init --apiserver-advertise-address $(hostname -i)
  1. 初始化集群网络
      kubectl apply -n kube-system -f \
       "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"
  1. 加入集群
      kubeadm join xxx.xxx.xxx.xxx:x --token ****** --discovery-token-ca-cert-hash ******  
  1. 查看节点
      kubectl get nodes
      kubectl get nodes -o wide
  1. 获取一些信息(get)
   1. replication-control
   kubectl get rc
   2. replicas-set
   kubectl get rs
   3. deployment
   kubectl get deploy
   4. service
   kuctl get svc
   5. namespace
   kuberctl get namespace
   6. pod
   kubectl get pod <po-name>
  1. 获取详细信息(describe)
   1. pod
   kubectl describe po <po-name>
   2. service
   kubectl describe svc
  1. 创建 Pod
   kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
   ps: kubectl run nginx --image=nginx --port=80
  1. 删除 Pod
   kubectl delete deployment <deploy-name>
  1. kubectl create
   kubectl create -f <name.yaml>
  1. kubectl delete
   kubectl delete -f <name.yaml>
   kubectl delete po <pod-name>
   kubectl delete po -lapp=nginx-2
  1. kubectl apply
   kubectl apply -f <name.yaml>
  1. kubectl logs
   kubectl logs <pod-name>
  1. rolling-update
    1. 更新
    kubectl rolling-update <name> -f <name.yaml>
    2. 回滚
    kubectl rolling-update <name> —rollback
  1. kubectl scale
    kubectl scale rs <name> —replicas=<int>
    kubectl autoscale rc <name> --min=1 --max=4
  1. kubectl exec
    kubectl exec <po-name> [cmd]
  1. Docker Swarm 系列教程
posted @ 2021-05-05 22:27  行者·无疆  阅读(156)  评论(0编辑  收藏  举报