kubectl命令应用

kubectl命令语法

kubectl [command] [TYPE] [NAME] [flags]

command:子命令,用于操作Kubernetes集群资源对象的命 令,例如create、delete、describe、get、apply等。

TYPE:资源对象的类型,区分大小写,能以单数、复数或者 简写形式表示。例如以下3种TYPE是等价的。

kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1

NAME:资源对象的名称,区分大小写。如果不指定名称, 系统则将返回属于TYPE的全部对象的列表,例如$ kubectl get pods将返 回所有Pod的列表。

flags:kubectl子命令的可选参数,例如使用“-s”指定API Server的URL地址而不用默认值

资源对象的名称缩写
cluster
componentstatusescs
configmapscm
daemonsetsds
deploymentsdeploy
endpointsep
eventsev
horizontalpodautoscalershpa
ingressesing
Jobs
limitrangeslimits
nodesno
namespacesns
networkpolicies
statefulsets
persistentvolumeclaimspvc
persistentvolumespv
podspo
podsecuritypoliciespsp
podtemplate
replicasetsrs
replicationcontrollersrc
resourcequotasquota
cronjob
secrets
serviceaccounts
servicessvc
storageclassessc
thirdpartyresources

kubectl常用操作

创建资源对象:

创建资源对象 根据YAML配置文件一次性创建Service和RC:
kubectl   create -f  my-service.yaml  -f  my-rc.yaml

根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml

查看资源对象:

[root@master ~]# kubectl get pods       查看所有 pod 列表
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6799fc88d8-hnjrq   1/1     Running   1          22h


kubectl get pod -n kube    -n 后跟 namespace, 查看指定的命名空间中的pod

#查看Service列表                              svc是service简写,也可以写全拼
[root@master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23h
nginx        NodePort    10.111.153.17   <none>        80:31775/TCP   23h

#kubectl get pod,svc -o wide                 -o wide 查看详细信息
[root@master ~]# kubectl get pod,svc -o wide 
NAME                         READY   STATUS    RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
pod/nginx-6799fc88d8-hnjrq   1/1     Running   1          23h   10.244.2.3   node2   <none>           <none>

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE   SELECTOR
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23h   <none>
service/nginx        NodePort    10.111.153.17   <none>        80:31775/TCP   23h   app=nginx

语法:kubectl get pod <pod-name> -o yaml

显示Pod更多信息

kubectl get pod <pod-name> -o wide ,列如:
[root@master ~]# kubectl get pod,rc -o wide 
NAME                         READY   STATUS    RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
pod/nginx-6799fc88d8-hnjrq   1/1     Running   1          23h   10.244.2.3   node2   <none>           <none>

以yaml格式显示Pod的详细信息

[root@master ~]# kubectl get pod,svc -o yaml
apiVersion: v1
items:
- apiVersion: v1
  kind: Pod
  metadata:
    creationTimestamp: "2021-08-26T05:50:56Z"

以自定义列名显示Pod的信息

[root@master ~]# kubectl get pod,svc -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
NAME                     RSRC
nginx-6799fc88d8-hnjrq   1926
kubernetes               202
nginx                    1266

基于文件的自定义列名输出

[root@master ~]# kubectl get pods,svc -o=custom-columns-file=template.txt
NAME                     RSRC
nginx-6799fc88d8-hnjrq   1926
kubernetes               202
nginx                    1266

[root@master ~]# kubectl get pods nginx-6799fc88d8-hnjrq  -o=custom-columns-file=template.txt 
NAME                     RSRC
nginx-6799fc88d8-hnjrq   1926

template.txt文件的内容为
NAME                RSRC
metadata.name       metadata.resourceVersion

创建一个deployment类型的容器

[root@master ~]# kubectl create deployment deploy-web --image=xialuo:v0.1 --replicas=3
deployment.apps/deploy-web created

[root@master ~]# kubectl get pods
NAME                         READY   STATUS              RESTARTS   AGE
deploy-web-dbc599567-tpvh4   0/1     ContainerCreating   0          12s
deploy-web-dbc599567-xhp26   0/1     ContainerCreating   0          12s
deploy-web-dbc599567-z4gxf   0/1     ContainerCreating   0          12s
nginx-6799fc88d8-hnjrq       1/1     Running             1          23h

删除
[root@master ~]# kubectl delete deployment deploy-web
deployment.apps "deploy-web" deleted

实时监控拉取镜像的状态

[root@master ~]# kubectl get pods -w
NAME                            READY   STATUS              RESTARTS   AGE
deploy-nginx-6b777fdcd5-8lrd4   0/1     ContainerCreating   0          63s
deploy-nginx-6b777fdcd5-bmk6q   0/1     ContainerCreating   0          63s
deploy-nginx-6b777fdcd5-mmtjk   0/1     ContainerCreating   0          63s
nginx-6799fc88d8-hnjrq          1/1     Running             1          23h
deploy-nginx-6b777fdcd5-bmk6q   0/1     ErrImagePull        0          67

创建service

[root@master ~]# kubectl expose deployment deploy-nginx --port=80 --protocol=TCP
service/deploy-nginx exposed
[root@master ~]# kubectl get svc
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
deploy-nginx   ClusterIP   10.96.65.25     <none>        80/TCP         14s
kubernetes     ClusterIP   10.96.0.1       <none>        443/TCP        23h
nginx          NodePort    10.111.153.17   <none>        80:31775/TCP   23h
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值