# comand:指定要对资源执行的操作,例如create、get、delete# type:指定资源类型,比如deployment、pod、service# name:指定资源的名称,名称大小写敏感# flags:指定额外的可选参数
kubectl [command][type][name][flags]# ======================== 测试例子# 查看所有pod
kubectl get pod
# 查看某个pod
kubectl get pod pod_name
# 查看某个pod,以yaml格式展示结果
kubectl get pod pod_name -o yaml
资源类型
kubernetes 中所有的内容都抽象为资源,可以通过下面的命令进行查看
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
配置
操作(command)
kubernetes 允许对资源进行多种操作,可以通过 --help 查看详细的操作命令
kubectl --help
经常使用的操作有下面这些
命令分类
命令
翻译
命令作用
基本命令
create
创建
创建一个资源
edit
编辑
编辑一个资源
get
获取
获取一个资源
patch
更新
更新一个资源
delete
删除
删除一个资源
explain
解释
展示资源文档
运行和调试
run
运行
在集群中运行一个指定的镜像
expose
暴露
暴露资源为Service
describe
描述
显示资源内部信息
logs
日志输出容器在 pod 中的日志
输出容器在 pod 中的日志
attach
缠绕进入运行中的容器
进入运行中的容器
exec
执行容器中的一个命令
执行容器中的一个命令
cp
复制
在Pod内外复制文件
rollout
首次展示
管理资源的发布
scale
规模
扩(缩)容Pod的数量
autoscale
自动调整
自动调整Pod的数量
高级命令
apply
rc
通过文件对资源进行配置
label
标签
更新资源上的标签
其他命令
cluster-info
集群信息
显示集群信息
version
版本
显示当前Server和Client的版本
下面以一个 namespace / pod 的创建和删除简单演示下命令的使用:
# 创建一个namespace[root@master ~]# kubectl create namespace dev
namespace/dev created
# 获取namespace[root@master ~]# kubectl get ns
NAME STATUS AGE
default Active 21h
dev Active 21s
kube-node-lease Active 21h
kube-public Active 21h
kube-system Active 21h
# 在此namespace下创建并运行一个nginx的Pod[root@master ~]# kubectl run pod --image=nginx:latest -n dev
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/pod created
# 查看新创建的pod[root@master ~]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
pod 1/1 Running 0 21s
# 删除指定的pod[root@master ~]# kubectl delete pod pod-864f9875b9-pcw7x -n dev
pod "pod" deleted
# 删除指定的namespace[root@master ~]# kubectl delete ns dev
namespace "dev" deleted
命令式对象配置
创建一个 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:latest
执行 create 命令,创建资源。此时发现创建了两个资源对象,分别是 namespace 和 pod
[root@master ~]# kubectl create -f nginxpod.yaml
namespace/dev created
pod/nginxpod created
执行 get 命令,查看资源
[root@master ~]# kubectl get -f nginxpod.yaml
NAME STATUS AGE
namespace/dev Active 18s
NAME READY STATUS RESTARTS AGE
pod/nginxpod 1/1 Running 0 17s