直接使用命令去操作kubernetes的资源,常用于测试
kubectl command [type] [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 <none> <none>
[root@k8s-master ~]#
基本命令:
命令 | 命令作用 |
---|---|
create | 创建一个资源 |
edit | 编辑一个资源 |
get | 获取一个资源 |
patch | 更新一个资源 |
delete | 删除一个资源 |
explain | 显示资源文档 |
运行和调试:
命令 | 命令作用 |
---|---|
run | 在集群中运行一个指定的镜像 |
expose | 暴露资源为Service |
describe | 显示资源内部信息 |
logs | 输出容器在Pod中的日志 |
attach | 进入运行中的容器 |
exec | 执行容器中的一个命令 |
cp | 在Pod和内外复制文件 |
rollout | 管理资源的发布 |
scale | 扩(缩)容Pod的数量 |
autoscale | 自动调整Pod的数量 |
高级命令:
命令 | 命令作用 |
---|---|
apply | 通过文件对资源进行创建或更新 |
label | 更新资源上的标签 |
其他命令:
命令 | 命令作用 |
---|---|
cluster-info | 显示集群信息 |
version | 显示当前Client和Server的版本 |
可以通过命令kubectl api-resources
查看所有能操作的资源类型
集群级别资源:
资源名称 | 缩写 | 资源作用 |
---|---|---|
nodes | no | 集群组成部分 |
namespaces | ns | 隔离Pod |
Pod资源:
资源名称 | 缩写 | 资源作用 |
---|---|---|
Pods | po | 装载容器 |
Pod资源控制器:
资源名称 | 缩写 | 资源作用 |
---|---|---|
replicationcontrollers | rc | 控制Pod资源 |
replicasets | rs | 控制Pod资源 |
deployments | deploy | 控制Pod资源 |
daemonsets | ds | 控制Pod资源 |
jobs | 控制Pod资源 | |
cronjobs | cj | 控制Pod资源 |
horizontalpodautoscalers | hpa | 控制Pod资源 |
statefulsets | sts | 控制Pod资源 |
服务发现资源:
资源名称 | 缩写 | 资源作用 |
---|---|---|
services | svc | 统一Pod对外接口 |
ingress | ing | 统一Pod对外接口 |
存储资源:
资源名称 | 缩写 | 资源作用 |
---|---|---|
volumeattachments | 存储 | |
persistentvolumes | pv | 存储 |
persistentvolumeclaims | pvc | 存储 |
配置资源:
资源名称 | 缩写 | 资源作用 |
---|---|---|
configmaps | cm | 配置 |
secrets | 配置 |
通过命令(不含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 ~]#
通过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 ~]#