
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) , 阿里云扩展了丰富的4/7层路由支持 | LB(L4阿里云提供了SLB路由支持)/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 |
总结
今天通过Kubernetes与Docker Swarm模式基本概念与常用命令对照,来帮助熟悉Docker编排的同学上手Kubernetes 。
阿里云Kubernetes服务 全球首批通过Kubernetes一致性认证,简化了Kubernetes集群生命周期管理,内置了与阿里云产品集成,也将进一步简化Kubernetes的开发者体验,帮助用户关注云端应用价值创新。