1 命令

#docker search flink【搜索各个版本的镜像】
#docker pull flink【下载最新镜像,标签latest】
#docker save -o flink.tar flink:latest【保存镜像】
#scp flink.tar root@IP:/root【传输镜像】
#docker load -i flink.tar【加载镜像】

#kubectl get namespace【查看命名空间】
#kubectl create namespace test【创建命名空间】

#kubectl get pod【查询pod】
#kubectl get pod --output=wide【查询pod详细信息PodIP】
#kubectl get pod -o wide【查询pod详细信息PodIP】

#kubectl get deployment【查询控制器】
#kubectl get replicaset【查询控制器】
#kubectl get rs【查询控制器】

#kubectl get service【查询服务clusterIP,NodePort】
#kubectl get svc【查询服务clusterIP,NodePort】

#kubectl logs -f <pod_name>【查询日志】

Pod处于apiVersion的v1中【yaml文件】
Controller处于apiVersion的apps/v1中【yaml文件】
Service处于apiVersion的v1中【yaml文件】

2 kubectl介绍

kubectl子命令主要包括对资源的创建、删除、查看、修改、配置、运行等。
#kubectl --help 可以查看所有子命令。
#kubectl options 可以查看支持的参数,例如 --namespace 指定namespace。

2.1 语法

语法:kubectl [command] [TYPE] [NAME] [flags]

(1)command 子命令,用于操作kubernetes集群资源对象的命令,如create、delete、describe、get、apply等。

(2)TYPE 资源对象的类型,如pod、service、rc、deployment、node等,可以单数、复数以及简写(pod/pods/po、service/services/svc)。

(3)NAME 资源对象的名称,不指定则返回所有,如 get pod 会返回所有pod,get pod nginx 则只返回nginx这个pod。

(4)flags kubectl子命令的可选参数,例如 -n 指定namespace,-s 指定apiserver的URL。

例如
(1)#kubectl get pod
(2)#kubectl get pod mysql-f16r2
(3)#kubectl get pod/myweb-f8xw9 rc/myweb
(4)#kubectl create -f pod1.yaml -f rc1.yaml -f svc1.yaml #可同时创建多个资源对象。

2.2 命令输出格式

kubectl命令可以用多种格式对结果进行显示,输出格式通过-o参数指定。
-o支持的格式有:

输出格式	说明
custom-columns=	根据自定义列名进行输出,逗号分隔
custom-columns-file=	从文件中获取自定义列名进行输出
json	以JSON格式显示结果
jsonpath=	输出jsonpath表达式定义的字段信息
jsonpath-file=	输出jsonpath表达式定义的字段信息,来源于文件
name	仅输出资源对象的名称
wide	输出更多信息,比如会输出node名
yaml	以yaml格式输出

举例:

# kubectl get pod -o wide
# kubectl get pod -o yaml
# kubectl get pod --sort-by=.metadata.name  #按name排序输出
# kubectl get pod -o custom-columns=NAME:.metadata.name,RESC:.metadata.resourceVersion

2.3 kubectl命令示例

(1)创建资源对象

(1)根据yaml文件创建service和deployment。
kubectl create -f my-service.yaml -f my-deploy.yaml
(2)也可以指定一个目录,
这样可以根据该目录下所有yaml或json文件一次性定义资源。
kubectl create -f <directory>

(2)查看资源对象

(1)# kubectl get pod查看所有pod
(2)# kubectl get deploy,svc查看deployment和service

(3)描述资源对象

(1)显示pod的详细信息
#kubectl describe pod <pod-name>
(2)显示node的详细信息
#kubectl describe node <node-name>
(3)显示deployment管理的pod信息
#kubectl describe pod <deployment-name>

(4)删除资源对象

(1)基于yaml文件删除
 kubectl delete -f pod.yaml
(2)删除所有包含某个label的pod和service
#kubectl delete po,svc -l name=<label-name>
(3)删除所有pod
#kubectl delete po --all

(5)执行容器的命令

(1)在pod中执行某个命令,如date
#kubectl exec <pod-name> date
(2)进入到pod的容器里
#kubectl exec -it <pod-name> bash

(6)查看容器日志

(1)# kubectl logs <pod-name>
(2)# kubectl logs -f <pod-name>动态查看