一、體驗k8s
官網地址:https://kubernetes.io/docs/tutorials/hello-minikube/
1.1.啓動
minikube start
查看信息:
kubectl cluster-info
kubectl get nodes
1.2.部署應用
kubectl run kubernetes-bootcamp \ --image=docker.io/jocatalin/kubernetes-bootcamp:v1 \ --port=8080
查看當前的 Pod:
1.3.端口映射訪問
kubectl expose deployment/kubernetes-bootcamp \ --type="NodePort" \ --port 8080
查看端口映射:
kubectl get services
訪問應用:
curl minikube:31584
2.scale應用
默認只會運行一個副本,可以通過scale來設置數量
2.1.查看當前副本
kubectl get deployments
2.2.增加副本爲3:
kubectl scale deployments/kubernetes-bootcamp --replicas=3
kubectl get deployments
查看當前pods數:
kubectl get pods
訪問應用可以看到被不同的pod接受:
減少副本:
kubectl scale deployments/kubernetes-bootcamp --replicas=2
有一個副本正在終止,過一段時間就會被回收
3.更新
3.1.將image從v1升級到v2
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
v1版本的pod逐個被刪除:
訪問應用查看版本:
二、Kubernetes的概念簡單說明
Cluster: 是存儲網絡資源集合
Master: 調度應用,可以部署多個
Node: 運行容器應用,由master管理
Pod:包含一個或多個容器,可以被整體調度到一個Node上,抽象的一個單元集合。
Controller: Kubernetes 通過Controller 來管理Pod。常用的Controller如: Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等
Deployment :創建 Deployment 來部署應用,可以管理 Pod 的多個副本。
ReplicaSet :實現Pod 的多副本管理。
DaemonSet :用於每個 Node 最多隻運行一個 Pod 副本的場景。
StatefuleSet:保證 Pod 的每個副本在整個生命週期中名稱是不變。
Job :用於運行結束就刪除的應用。
Service: 定義了外界訪問一組特定 Pod 的方式。
Namespace: 可以將一個物理的 Cluster 邏輯上劃分成多個虛擬 Cluster。