写点什么

【云原生 | 从零开始学 Kubernetes】三、Kubernetes 集群管理工具 kubectl

作者:泡泡
  • 2022 年 9 月 22 日
    河北
  • 本文字数:1440 字

    阅读完需:约 5 分钟

【云原生 | 从零开始学 Kubernetes】三、Kubernetes集群管理工具kubectl

概述

kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。



命令格式

命令格式如下


kubectl [command] [type] [name] [flags]
复制代码


参数


  • command:指定要对资源执行的操作,例如 create、get、describe、delete

  • type:指定资源类型,资源类型是大小写敏感的,开发者能够以单数,复数,缩略的形式指定。

  • name:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有的资源。

  • flags:指定额外的可选参数,比如可以用 -s 或者 -server 参数指定 Kubernetes API server 的地址和端口


例如:


kubectl get pod pod1kubectl get pods pod1kubectl get po pod1kubectl get pods
复制代码



常见命令

kubectl help 获取更多信息

通过 help 命令,能够获取帮助信息


# 获取kubectl的命令kubectl --help
# 获取某个命令的介绍和使用kubectl get --help
# 查看目前的状态kubectl get cs
# 查看所有podkubectl get pod
# 查看某个podkubectl get pod pod_name
# 查看某个pod,以yaml格式展示结果kubectl get pod pod_name -o yaml
复制代码

基础命令

常见的基础命令



部署命令


集群管理命令


故障和调试命令


目前经常使用的命令

# 创建一个nginx镜像kubectl create deployment nginx --image=nginx
# 对外暴露端口kubectl expose deployment nginx --port=80 --type=NodePort
# 查看资源kubectl get pod
# 查看详细信息ip,端口等。kubectl get svc
复制代码

演示

创建一个 namespace

[root@k8smaster ~]# kubectl create namespace paopaonamespace/paopao created
复制代码

获取 namespace

[root@k8smaster ~]# kubectl get nsNAME              STATUS   AGEdefault           Active   7d23hkube-node-lease   Active   7d23hkube-public       Active   7d23hkube-system       Active   7d23hpaopao            Active   22s
复制代码

在此 namespace 下创建并运行一个 nginx 的 Pod

[root@k8smaster ~]# kubectl run pod --image=nginx:latest -n paopaopod/pod created
复制代码

查看新创建的 pod

[root@k8smaster ~]# kubectl get pod -n paopaoNAME   READY   STATUS    RESTARTS   AGEpod    1/1     Running   0          3m14s
复制代码

删除指定的 namespace

[root@master ~]# kubectl delete ns devnamespace "dev" deleted
复制代码


创建/更新资源 使用声明式对象配置 kubectl apply -f XXX.yaml


删除资源 使用命令式对象配置 kubectl delete -f XXX.yaml


查询资源 使用命令式对象管理 kubectl get(describe) 资源名称

资源管理方式

命令式对象管理:直接使用命令去操作 kubernetes 资源,直接操作对象,适合测试用,比较简单,缺点是只能操作活动对象,无法审计跟踪。


kubectl run nginx-pod --image=nginx --port=80
复制代码


命令式对象配置:通过命令配置和配置文件去操作 kubernetes 资源,直接操作文件,适合开发,可以审计以及跟踪,但是项目太大的话,配置文件多就会很多,操作麻烦。


kubectl create -f nginx-pod.yamlkubectl patch -f nginx-pod.yaml
复制代码


声明式对象配置:通过 apply 命令和配置文件去操作 kubernetes 资源,直接操作目录,适合开发,支持目录操作,但是不好调试。


kubectl apply -f nginx-pod.yaml
复制代码


资源类型


kubernetes 中所有的内容都抽象为资源,可以通过下面的命令进行查看:


kubectl api-resources
复制代码

写在最后

创作不易,如果觉得内容对你有帮助,麻烦给个三连关注支持一下我!如果有错误,请在评论区指出,我会及时更改!目前正在更新的系列:从零开始学 k8s

感谢各位的观看,文章掺杂个人理解,如有错误请联系我指出~

发布于: 刚刚阅读数: 3
用户头像

泡泡

关注

做最好的知识分享 云计算/云原生 2022.08.25 加入

CSDN万粉博主

评论

发布
暂无评论
【云原生 | 从零开始学 Kubernetes】三、Kubernetes集群管理工具kubectl_Docker_泡泡_InfoQ写作社区