天天看点

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