kubernetes常用命令汇总

本文详细介绍了Kubernetes(kubectl)的基础和高级命令,包括创建、暴露服务、滚动更新、集群管理和故障诊断等功能,并通过实例展示了如何使用kubectl部署应用和服务,以及如何访问这些应用。
摘要由CSDN通过智能技术生成

kubectl命令行管理工具

  • 基础命令

    • create 通过文件名或标准输入创建资源

    • expose 为Deployment,Pod创建service

    • run 在集群中运行一个特定的镜像

    • set 在对象上设置特定的功能

    • explain 文档参考资料

    • get 显示一个或多个资源

    • edit 使用系统编辑器编辑一个资源

    • delete 通过文件名、标准输入、资源名或标签选择器来删除资源

  • 部署命令

    • rollout 管理Deployment/Daemonset资源的发布(例如状态、发布记录、回滚等)

    • rolling-update 滚动升级、限制ReplicationController

    • scale 对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量

    • autoscale 为Deployment/ReplicaSet、RC配置自动伸缩规则(依赖metrics-server和hpa)

  • 集群管理命令

    • certificate 修改证书资源

    • cluster-info 显示集群信息

    • top 查看资源利用率(依赖metrics-server)

    • cordon 标记节点不可调度

    • uncordon 标记节点可调度

    • drain 驱逐节点上的应用,准备下线维护

    • taint 修改节点taint标记

  • 故障诊断和调试命令

    • describe 显示资源详细信息

    • logs 查看pod内容器日志,若pod有多个容器,-c参数指定容器名称

    • attach 附加到pod内的一个容器

    • exec 在容器内执行命令

    • port-forward 为pod创建本地端口映射

    • proxy 为Kubernetes API server 创建代理

    • cp 拷贝文件或目录到容器中,或从容器内向外拷贝

  • 高级命令

    • apply 从文件名或标准输入对资源创建、更新

    • patch 使用补丁方式修改、更新资源的某些字段

    • replace 从文件名或标准输入替换一个资源

    • convert 在不同API版本之间转换对象定义

  • 设置命令

    • label 给资源设置、更新标签

    • annotate 给资源设置、更新注解

    • completion kubectll工具不全,source <(kubectl completion bash) (依赖bash-completion包)

      yum -y install bash-completion
      source <(kubectl completion bash)
      kube <tab><tab>
      kubeadm  kubectl  kubelet

  • 其他命令

    • api-resources 查看所有资源

    • api-versions 打印受支持的API版本

    • config 修改kubeconfig文件(用于访问API,比如配置认证信息)

    • help 帮助命令

    • version 查看 kubectl和k8s版本

    ==========

    小试牛刀

    • 使用deployment控制器部署镜像

      # kubectl create deployment  my-dep --image=nginx --replicas=3
      deployment.apps/my-dep created
      ​
      ​
      # kubectl get deploy,pods
      NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
      deployment.apps/my-dep   0/3     3            0           14s
      ​
      NAME                          READY   STATUS              RESTARTS   AGE
      pod/my-dep-5b7868d854-dphc8   0/1     ContainerCreating   0          14s
      pod/my-dep-5b7868d854-sgr2k   0/1     ContainerCreating   0          14s
      pod/my-dep-5b7868d854-z9k5r   0/1     ContainerCreating   0          14s
      
      

  • 使用service将pod暴漏出去:

    # kubectl expose deployment my-dep --port=80 --target-port=80 --name=my-dep-svc --type=NodePort
    service/my-dep-svc exposed
    ​
    # kubectl get service
    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
    kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        31h
    myweb        NodePort    10.96.176.142   <none>        80:30115/TCP   26s
    ​
    # kubectl get svc,deploy,pods
    NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
    service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        31h
    service/my-dep-svc   NodePort    10.96.225.241   <none>        80:30572/TCP   23s
    ​
    NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/my-dep   3/3     3            3           116s
    ​
    NAME                          READY   STATUS    RESTARTS   AGE
    pod/my-dep-5b7868d854-dphc8   1/1     Running   0          116s
    pod/my-dep-5b7868d854-sgr2k   1/1     Running   0          116s
    pod/my-dep-5b7868d854-z9k5r   1/1     Running   0          116s
    ​
    ​​# 多个容器提供统一服务,service实现了负载均衡的角色,统一暴漏端口,port为 service(10.96.225.241)端口   target-port为容器端口,type=NodePort 可以将容器端口暴漏在宿主机的网络中,随机产生端口
  • 访问应用:

 

集群内:curl http://10.96.225.241 -k

http://NodeIP:port # port 随机生成,通过get svc获取,上例为:
集群外:http://NodeIP:30572
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值