目录
1. 命令式对象管理
- 1. 命令式对象管理
- 1.1 kubectl命令的语法
- 1.2 常用的kubectl各种command
- 1.3 常操作的kubectl各种type资源类型
- 2. 命令式对象配置
- 3. 声明式对象配置
直接使用命令去操作kubernetes的资源,常用于测试
1.1 kubectl命令的语法kubectl command [type] [name] [flags]
说明:
- command:指定要对资源执行的操作,比如run、create、get、delete
- type:指定资源的类型,比如deployment、pod、service
- name:指定资源的名称,名称大小写敏感
- flags:指定额外的可选参数
例如查看pod信息
[root@k8s-master ~]# kubectl get pods nginx-8f458dc5b-d4wnm -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-8f458dc5b-d4wnm 1/1 Running 1 (29h ago) 29h 10.244.36.67 k8s-node1
[root@k8s-master ~]#
1.2 常用的kubectl各种command
基本命令:
命令命令作用create创建一个资源edit编辑一个资源get获取一个资源patch更新一个资源delete删除一个资源explain显示资源文档运行和调试:
命令命令作用run在集群中运行一个指定的镜像expose暴露资源为Servicedescribe显示资源内部信息logs输出容器在Pod中的日志attach进入运行中的容器exec执行容器中的一个命令cp在Pod和内外复制文件rollout管理资源的发布scale扩(缩)容Pod的数量autoscale自动调整Pod的数量高级命令:
命令命令作用apply通过文件对资源进行创建或更新label更新资源上的标签其他命令:
命令命令作用cluster-info显示集群信息version显示当前Client和Server的版本 1.3 常操作的kubectl各种type资源类型可以通过命令kubectl api-resources
查看所有能操作的资源类型
集群级别资源:
资源名称缩写资源作用nodesno集群组成部分namespacesns隔离PodPod资源:
资源名称缩写资源作用Podspo装载容器Pod资源控制器:
资源名称缩写资源作用replicationcontrollersrc控制Pod资源replicasetsrs控制Pod资源deploymentsdeploy控制Pod资源daemonsetsds控制Pod资源jobs控制Pod资源cronjobscj控制Pod资源horizontalpodautoscalershpa控制Pod资源statefulsetssts控制Pod资源服务发现资源:
资源名称缩写资源作用servicessvc统一Pod对外接口ingressing统一Pod对外接口存储资源:
资源名称缩写资源作用volumeattachments存储persistentvolumespv存储persistentvolumeclaimspvc存储配置资源:
资源名称缩写资源作用configmapscm配置secrets配置 2. 命令式对象配置通过命令(不含apply命令)和配置文件去操作kubernetes的资源
例如创建一个nginx-pod.yaml,内容如下
[root@k8s-master ~]# cat nginx-pod.yaml
# 定义一个name为dev的namespace
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
# 定义一个运行nginx的pod
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
namespace: dev
spec:
containers:
- name: nginx-container
image: nginx:1.21.6
imagePullPolicy: IfNotPresent
[root@k8s-master ~]#
执行create命令,创建资源
[root@k8s-master ~]# kubectl create -f nginx-pod.yaml
namespace/dev created
pod/nginx-pod created
[root@k8s-master ~]#
3. 声明式对象配置
通过apply命令和配置文件去操作kubernetes的资源。可以同时操作一个目录下的多个配置文件,出现错误难调试
apply的资源不存在,则创建。存在则更新。相当于create和patch的组合
例如修改nginx-pod.yaml文件的nginx镜像版本为latest。再执行apply命令进行更新
[root@k8s-master ~]# kubectl apply -f nginx-pod.yaml
namespace/dev unchanged
pod/nginx-pod configured
[root@k8s-master ~]#