【云原生之k8s】K8s 管理工具 kubectl 详解一

目录

一、陈述式管理

1、陈述式资源管理方法

2、k8s相关信息查看

         2.1 查看版本信息

2.2 查看节点信息 

2.3 查看资源对象简写 

2.4 查看集群信息

2.5 配置kubectl自动补全 

2.6 查看日志

2.7 基本信息查看 

   2.7.1 查看master节点状态 

   2.7.2 查看命名空间 

2.8 命名空间操作 

   2.8.1 查看default命名空间的所有资源

   2.8.2 创建命名空间

   2.8.3 删除命名空间 

2.9 deployment/pod操作 

   2.9.1 在命名空间kube-public创建副本控制器(deployment)来启动Pod(nginx-test)

   2.9.2 描述某个资源的详细信息

   2.9.3 查看命名空间kube-public中pod信息

   2.9.4 登录容器

   2.9.5 删除(重启)pod资源

   2.9.6 若无法删除,总是处于terminate状态,则要强行删除pod

   2.9.7 扩缩容

     2.9.7.1 扩容

     2.9.7.2 缩容

   2.9.8 删除副本控制器

2.10 增加/删除label

   2.10.1 增加label

   2.10.2 删除label

二、声明式管理

1、声明式管理方法

2、查看资源配置清单

3、解释资源配置清单

4、修改资源配置清单并应用

4.1 离线修改

4.1.1 修改yaml文件

4.1.2 删除资源

4.1.3 新建资源

4.1.4 查看service资源

5、删除资源配置清单

5.1 陈述式删除

5.2 声明式删除


一、陈述式管理

1、陈述式资源管理方法

① kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口

② kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径
③ kubectl 的命令大全
kubectl --help
④ k8s官方中文文档:http://docs.kubernetes.org.cn/683.html
⑤ 对资源的增、删、查操作比较容易,但对改的操作就不容易了

【云原生之k8s】K8s 管理工具 kubectl 详解一_第1张图片

2、k8s相关信息查看

2.1 查看版本信息

kubectl version

2.2 查看节点信息 

kubectl get nodes

【云原生之k8s】K8s 管理工具 kubectl 详解一_第2张图片

2.3 查看资源对象简写 

kubectl api-resources

【云原生之k8s】K8s 管理工具 kubectl 详解一_第3张图片

2.4 查看集群信息

kubectl cluster-info

【云原生之k8s】K8s 管理工具 kubectl 详解一_第4张图片

2.5 配置kubectl自动补全 

source <(kubectl completion bash)

可通过TAB键实现命令补全,建议将其写入 /etc/profile

2.6 查看日志

kubeadm部署的 kubectl logs -t pod组件名 -n kube-system /journalctl -u kubelet -t            对应节点

journalctl -u kubelet -f

【云原生之k8s】K8s 管理工具 kubectl 详解一_第5张图片

2.7 基本信息查看 

kubectl get [-o wide|json|yaml] [-n namespace]

获取资源的相关信息,-n指定命名空间,-o 指定输出格式
resource可以是具体资源名称,如"pod nhinx-xxx";也可以是资源类型,如“pod,node,svc,deploy”多种资源使用逗号间隔;或者all(仅展示几种核心资源,并不完整)

–all-namespaces或-A:表示显示所有命名空间

–show-labels:显示所有标签

-l app:仅显示标签为app的资源

-l app=nginx:仅显示包含app标签,且值为nginx的资源

【云原生之k8s】K8s 管理工具 kubectl 详解一_第6张图片

【云原生之k8s】K8s 管理工具 kubectl 详解一_第7张图片

【云原生之k8s】K8s 管理工具 kubectl 详解一_第8张图片【云原生之k8s】K8s 管理工具 kubectl 详解一_第9张图片【云原生之k8s】K8s 管理工具 kubectl 详解一_第10张图片

【云原生之k8s】K8s 管理工具 kubectl 详解一_第11张图片

2.7.1 查看master节点状态 

kubectl get componentstatuses

#componentstatues可以缩写成cs
kubectl get cs

【云原生之k8s】K8s 管理工具 kubectl 详解一_第12张图片

2.7.2 查看命名空间 

kubectl get namespace

#namespace可以缩写成ns
kubectl get ns

命令空间的作用:用于允许不同命令空间的相同类型的资源重名的 

【云原生之k8s】K8s 管理工具 kubectl 详解一_第13张图片

2.8 命名空间操作 

2.8.1 查看default命名空间的所有资源

kubectl get all [-n default]
由于deafult为缺省空间,当不指定命名空间时默认查看default命名空间

【云原生之k8s】K8s 管理工具 kubectl 详解一_第14张图片

2.8.2 创建命名空间

kubectl create ns xgg 创建命名空间

kubectl get ns

【云原生之k8s】K8s 管理工具 kubectl 详解一_第15张图片

2.8.3 删除命名空间 

kubectl delete ns xgg

kubectl get ns

【云原生之k8s】K8s 管理工具 kubectl 详解一_第16张图片

2.9 deployment/pod操作 

2.9.1 在命名空间kube-public创建副本控制器(deployment)来启动Pod(nginx-test)

kubectl get pod -n kube-public  查看这个名称空间的pod

kubectl create deployment nginx-test --image=nginx -n kube-public  创建

kubectl get deploy -n kube-public

【云原生之k8s】K8s 管理工具 kubectl 详解一_第17张图片

2.9.2 描述某个资源的详细信息

kubectl describe deployment nginx-test -n kube-public 

【云原生之k8s】K8s 管理工具 kubectl 详解一_第18张图片

kubectl describe pod nginx-test -n kube-public

kubectl describe pod nginx -n kube-public
#查看pod的详细信息

【云原生之k8s】K8s 管理工具 kubectl 详解一_第19张图片

 

2.9.3 查看命名空间kube-public中pod信息

kubectl get pods -n kube-public

2.9.4 登录容器

kubectl get pod -n kube-public

kubectl exec 可以跨主机登录容器,docker exec 只能在容器所在主机登录

kubectl exec -it nginx-test-795d659f45-tljl7 bash -n kube-public

【云原生之k8s】K8s 管理工具 kubectl 详解一_第20张图片

2.9.5 删除(重启)pod资源

由于存在 deployment/rc 之类的副本控制器,删除 pod 也会重新拉起来

kubectl get pod -n kube-public  查看name

 

kubectl delete pod nginx-test-795d659f45-wl9b7 -n kube-public 删除
kubectl get pod -n kube-public  再次查看又重新启动一个

【云原生之k8s】K8s 管理工具 kubectl 详解一_第21张图片

 

2.9.6 若无法删除,总是处于terminate状态,则要强行删除pod

kubectl delete pod [] -n [] --force --grace-period=0

grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅的退出,0表示立即终止pod

kubectl get pod -n kube-public  查看name

kubectl delete pod nginx-test-795d659f45-wl9b7 -n kube-public --force --grace-period=0

【云原生之k8s】K8s 管理工具 kubectl 详解一_第22张图片

2.9.7 扩缩容

2.9.7.1 扩容

kubectl scale deployment nginx-test --replicas=3 -n kube-public 创建3个副本
kubectl get pod -n kube-public  查看

【云原生之k8s】K8s 管理工具 kubectl 详解一_第23张图片

2.9.7.2 缩容

kubectl scale deployment nginx-test --replicas=1 -n kube-public

kubectl get pod -n kube-public

【云原生之k8s】K8s 管理工具 kubectl 详解一_第24张图片

2.9.8 删除副本控制器

kubectl delete deployment nginx-test -n kube-public
kubectl get pod -n kube-public  查看

2.10 增加/删除label

2.10.1 增加label

kubectl get deploy --show-labels

kubectl label deploy nginx version=nginx1.14
kubectl get deploy --show-labels

【云原生之k8s】K8s 管理工具 kubectl 详解一_第25张图片

2.10.2 删除label

kubectl get deploy --show-labels

kubectl label deploy nginx version-
kubectl get deploy --show-labels

【云原生之k8s】K8s 管理工具 kubectl 详解一_第26张图片

二、声明式管理

1、声明式管理方法

① 适合于对资源的修改操作
② 声明式资源管理方法依赖于资源配置清明文件对资源进行管理
③ 资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
④ 对资源的观念里,是通过实现定义在同一资源配置清单内,再通过陈述式命令应用到k8s集群里

⑤ 语法格式:kubectl create/apply/delete -f -o yaml

2、查看资源配置清单

kubectl get deploy/nginx -o yaml
查看deploy控制器配置清单

【云原生之k8s】K8s 管理工具 kubectl 详解一_第27张图片

kubcectl get service nginx -o yaml
查看pod配置清单

【云原生之k8s】K8s 管理工具 kubectl 详解一_第28张图片

3、解释资源配置清单

kubectl explain deployment.metadata

【云原生之k8s】K8s 管理工具 kubectl 详解一_第29张图片

kubectl explain service.metadata 

【云原生之k8s】K8s 管理工具 kubectl 详解一_第30张图片

4、修改资源配置清单并应用

4.1 离线修改

4.1.1 修改yaml文件

修改yaml文件:并用kubectl apply -f xxxx.yaml 文件使之生效
注意:当apply不生效时,先使用delete清除资源,再apply创建资源

kubectl get service nginx -o yaml > nginx-svc.yaml

【云原生之k8s】K8s 管理工具 kubectl 详解一_第31张图片

4.1.2 删除资源

kubectl delete -f nginx-svc.yaml

4.1.3 新建资源(发表)

kubectl apply -f nginx-svc.yaml

4.1.4 查看service资源

kubectl get svc

5、删除资源配置清单

5.1 陈述式删除

kubectl delete service nginx

【云原生之k8s】K8s 管理工具 kubectl 详解一_第32张图片

5.2 声明式删除

kubectl delete -f nginx-svc.yaml

【云原生之k8s】K8s 管理工具 kubectl 详解一_第33张图片

 

你可能感兴趣的:(kubernetes,云原生,docker)