docker集群常用命令
[TOC]
docker swarm^1^
要求
一个 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
节点管理
AVAILABILITY 的三种状态
==Active==:调度器能够将任务安排到这个节点
==Pause==:调度器不能将新的任务安排到这个节点,但是已有的任务会继续运行
==Drain==:调度器不能安排新的任务到这个节点,同时这个节点以运行的任务将被停止,分配到其他的节点上
MANAGER STAUTS 的状态
==Leader==:主要管理者节点
==Reachable==:如果 Leader 节点不可用,则这这些节点有资格选举为新的 Leader
==Unavailable==:该节点不能和其他 Manager 节点产生任何联系,
这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点
检查节点的详细信息
docker node inspect <node-id> --pretty
变更节点可用性
docker node update --availability <status> <node>
升级降级节点
1. 升级 docker node promote <node> 2. 降级 docker node demote <node>
Service 部署
创建服务
docker service create --name <name> <image>
查看服务
docker service ls
更新服务
docker service update --publish-add 8080:80 <name>
回滚服务
docker service rollback <name>
扩容服务
docker service scale <name>=<int num>
移除服务
docker service remove <name>
列出服务
docker service ls docker service ps <name> docker service inspect <name>
Service 存储
数据卷挂载
docker service create \ --mount type=volume,src=<volume-name>, dst=<container-path> \ --name <name> \ <image>
数据卷创建
docker volume create <volume-name>
数据卷详细信息
docker volume inspect <volume-name>
删除数据卷
docker volume rm <volume-name>
批量删除未挂载数据卷
docker volume prune
Docker Stack
部署 stack
docker stack deploy [option] STACK ps: docker stack deploy -c compose.yaml <name>
列出 Stack
docker stack ls
服务列表
docker stack services <stack-name>
任务列表
docekr stack ps <stack-name>
更新 stack
# 重新部署即可 docker stack deploy [option] STACK
删除 stack
docker stack rm <stack-name>
kubernetes
集群的创建与加入
初始化集群主节点
kubeadm init --apiserver-advertise-address $(hostname -i)
初始化集群网络
kubectl apply -n kube-system -f \ "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"
加入集群
kubeadm join xxx.xxx.xxx.xxx:x --token ****** --discovery-token-ca-cert-hash ******
查看节点
kubectl get nodes kubectl get nodes -o wide
获取一些信息(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>
获取详细信息(describe)
1. pod kubectl describe po <po-name> 2. service kubectl describe svc
创建 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
删除 Pod
kubectl delete deployment <deploy-name>
kubectl create
kubectl create -f <name.yaml>
kubectl delete
kubectl delete -f <name.yaml> kubectl delete po <pod-name> kubectl delete po -lapp=nginx-2
kubectl apply
kubectl apply -f <name.yaml>
kubectl logs
kubectl logs <pod-name>
rolling-update
1. 更新 kubectl rolling-update <name> -f <name.yaml> 2. 回滚 kubectl rolling-update <name> —rollback
kubectl scale
kubectl scale rs <name> —replicas=<int> kubectl autoscale rc <name> --min=1 --max=4
kubectl exec
kubectl exec <po-name> [cmd]
Last updated
Was this helpful?