Docker是众多用户上手入门的基础容器和编排工具,提供了良好的开发者体验。Kubernetes是强大的容器编排平台,功能丰富。它们有很多概念和操作都有类似之处。
我们今天会和大家对比基本概念与常用命令,可以方便熟悉Docker的用户上手Kubernetes。
概念对照
类别 | 概念 | Docker Swarm mode | Kubernetes
—|—|—|—
节点角色 | 主节点 | Manager (其中一个选为leader) | Master
| 工作节点 | Worker | Worker
工作负载 | 工作负载定义 | Service | Deployment
| 部署单元 | Task (Container) | Pod
| 伸缩定义 | Replicated mode | ReplicaSet
| 全局服务 | Global mode | DaemonSet
| 有状态服务 | N/A (Compose V2定义了有状态服务) | StatefulSet
| Job | N/A | Job/CronJob
| 服务发现 | DNS | DNS
| 负载均衡 | Endpoint mode(VIP/DNSRR) | Service VIP
| 服务路由 | Routing Mesh (L4) | LB(L4)/Ingress (L7)
| Port | PublishedPort | Endpoint
| 秘钥信息 | Secret | Secret
| 配置信息 | Config | ConfigMap
健康检查 | 健康检查 | Health Check | LivenessProbe
| 就绪检查 | Health Check配合start_period参数 | ReadinessProbe
资源限制 (CPU, Memory) | Hard limits | Limits | Limits
| Soft limit | Reserverations | Requested
调度约束 | Node 亲和 | Placement constraints | NodeAffinity
| 部署亲和 |
| PodAffinity
| 可用区 | Placement preference |
存储 | 存储卷 | Volume | Volume/Persistent Volumes Claims
网络 | 网络模型 | CNM(Overlay, MacVLAN/IPVLAN, …) | CNI(Flannel, Calico, …)
| DNS支持 | 内置 | DNS Addon
命令对照
分类 | Docker | Docker Swarm mode | Kubernetes
—|—|—|—
基本部署单位 | docker run | docker service create | kubectl run/kubectl create deployment
| docker ps | docker service ps | kubectl get pods
| docker inspect | docker service inspect | kubectl describe pod
| docker attach |
| kubectl attach
| docker exec |
| kubectl exec
| docker logs | docker service logs | kubectl logs
| docker top |
| kubectl top pod
| docker start |
|
| docker stop |
|
| docker rm | docker service rm | kubectl delete deployment
|
| docker service scale | kubectl scale
| docker update | docker service update | kubectl rollout/update/kubectl replace
|
| docker service rollback | kubectl rollout undo
服务编排 |
| docker stack deploy |
|
| docker stack ls |
|
| docker stack ps |
|
| docker stack rm |
版本信息 | docker version |
| kubectl version
| docker info |
| kubectl cluster-info
|
| docker node ls | kubectl get nodes
|
|
| kubectl top node