Kubernetes與Docker基本概念與常用命令對照

暖夏未眠丶發表於2018-01-22

Docker是眾多使用者上手入門的基礎容器和編排工具,提供了良好的開發者體驗。Kubernetes是強大的容器編排平臺,功能豐富。它們有很多概念和操作都有類似之處。我們今天會和大家對比基本概念與常用命令,可以方便熟悉Docker的使用者上手Kubernetes。

DockerAndK8S

Docker是眾多使用者上手入門的基礎容器和編排工具,提供了良好的開發者體驗。Kubernetes是強大的容器編排平臺,功能豐富。它們有很多概念和操作都有類似之處。我們今天會和大家對比基本概念與常用命令,可以方便熟悉Docker的使用者上手Kubernetes。

概念對照

類別概念Docker Swarm modeKubernetes
節點角色主節點Manager (其中一個選為leader)Master
工作節點WorkerWorker
工作負載工作負載定義ServiceDeployment
部署單元Task (Container)Pod
伸縮定義Replicated modeReplicaSet
全域性服務Global modeDaemonSet
有狀態服務N/A (Compose V2定義了有狀態服務)StatefulSet
JobN/A (阿里雲擴充套件定義了離線任務和定時任務模型)Job/CronJob
服務發現DNSDNS
負載均衡Endpoint mode(VIP/DNSRR)Service VIP
服務路由Routing Mesh (L4) , 阿里雲擴充套件了豐富的4/7層路由支援LB(L4阿里雲提供了SLB路由支援)/Ingress (L7)
PortPublishedPortEndpoint
祕鑰資訊SecretSecret
配置資訊ConfigConfigMap
健康檢查健康檢查Health CheckLivenessProbe
就緒檢查Health Check配合start_period引數ReadinessProbe
資源限制 (CPU, Memory)Hard limitsLimitsLimits
Soft limitReserverationsRequested
排程約束Node 親和Placement constraintsNodeAffinity
部署親和PodAffinity
可用區Placement preference
儲存儲存卷VolumeVolume/Persistent Volumes Claims
網路網路模型CNM(Overlay, MacVLAN/IPVLAN, ...)CNI(Flannel, Calico, ...)
DNS支援內建DNS Addon

命令對照

分類DockerDocker Swarm modeKubernetes
基本部署單位docker rundocker service createkubectl run/kubectl create deployment
docker psdocker service pskubectl get pods
docker inspectdocker service inspectkubectl describe pod
docker attachkubectl attach
docker execkubectl exec
docker logsdocker service logskubectl logs
docker topkubectl top pod
docker start
docker stop
docker rmdocker service rmkubectl delete deployment
docker service scalekubectl scale
docker updatedocker service updatekubectl rollout/update/kubectl replace
docker service rollbackkubectl rollout undo
服務編排docker stack deploy
docker stack ls
docker stack ps
docker stack rm
版本資訊docker versionkubectl version
docker infokubectl cluster-info
docker node lskubectl get nodes
kubectl top node

總結

今天通過Kubernetes與Docker Swarm模式基本概念與常用命令對照,來幫助熟悉Docker編排的同學上手Kubernetes 。

阿里雲Kubernetes服務 全球首批通過Kubernetes一致性認證,簡化了Kubernetes叢集生命週期管理,內建了與阿里雲產品整合,也將進一步簡化Kubernetes的開發者體驗,幫助使用者關注雲端應用價值創新。

原文連結


相關文章