天天看點

Kubernetes學習--資源管理方式

資源管理方式

    • 各種方式的優劣
    • 指令式對象管理
    • 指令式對象管理
    • 聲明式對象配置
  • 指令式對象管理:直接使用指令去操作Kubernetes資源
kubectl run nginx-pod --image=nginx:1.17.1 --port=80
           
  • 指令式對象配置:通過指令配置和配置檔案去操作Kubernetes資源
kubectl create/patch -f nginx-pod.yaml
           
  • 聲明式對象配置:通過apply指令和配置檔案去操作Kubernetes資源(建立和更新)
kubectl apply -f nginx-pod.yaml
           

各種方式的優劣

Kubernetes學習--資源管理方式

指令式對象管理

kubectl指令

kubectl是Kubernetes叢集的指令行工具,通過它能夠對叢集本身進行管理,并能夠在叢集上進行容器化應用的安裝部署。Kubectl指令的文法如下:

  • command:指定要對資源執行的操作,例如create\get\delete
  • type:指定資源類型,比如deployment\pod\service
  • name:指定資源的名稱,名稱大小寫敏感
  • flags:指定額外的可選參數
# 檢視所有pod
kubectl get pod

# 檢視某個pod
kubectl get pod pod_name

# 檢視某個pod,以yaml格式展示結果
kubectl get pod pod_name -o yaml

# 檢視某個pod,展示詳細資訊
kubectl get pod pod_name -o wide

           

指令式對象管理

指令式對象配置就是使用指令配合配置檔案一起來操作Kubernetes資源。還以上述過程為例。

建立一個nginxpod.yaml

apiVersion: v1
kind: Namespace
metadata: 
  name: dev
  
---

apiVersion: v1
kind: Pod
metadata: 
  name: nginxpod
  namespace: dev
spec:
  containers:
  - name: nginx-containers
    image: nginx:1.17.1

           
kubectl create -f ./nginxpod.yaml 
           
Kubernetes學習--資源管理方式

檢視下建立的名稱空間是否存在

kubectl get namespace
           
Kubernetes學習--資源管理方式

檢視該名稱空間下的pod

kubectl get pod -n dev
           
Kubernetes學習--資源管理方式

删除

kubectl delete -f ./nginxpod.yaml
           

聲明式對象配置

聲明式對象配置跟指令式對象配置很相似,但是它隻有一個指令apply

# 首先執行一次kubectl apply -f yaml檔案,發現建立了資源
kubectl apply -f nginxpod.yaml

# 再次執行一次kubectl apply -f yaml檔案,發現資源沒有變動

           
Kubernetes學習--資源管理方式

學習資料 黑馬k8s https://www.bilibili.com/video/BV1Qv41167ck?p=19&share_source=copy_web