码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • K8S常用kubectl命令汇总(持续更新中)


    天行健,君子以自强不息;地势坤,君子以厚德载物。


    每个人都有惰性,但不断学习是好好生活的根本,共勉!


    文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

    文章目录

    • 1. 命名空间namespace相关
      • 1.1 创建命名空间
      • 1.2 查询命名空间
    • 2. 节点node相关
      • 2.1 查看集群节点
      • 2.2 查看节点健康状态
    • 3. 容器pod相关
      • 3.1 查看pods
      • 3.2 删除pod
      • 3.3 查看pod详细信息
      • 3.4 查看pod描述信息
      • 3.5 查看deployment的日志信息
      • 3.6 查看问题pod
      • 3.7 进入pod
      • 3.8 退出pod
    • 4. 持久化存储pvc相关
      • 4.1 查看pvc
      • 4.2 删除pvc
    • 5. 服务svc相关
      • 5.1 查看svc
      • 5.2 删除svc
    • 6. 查看全部服务
    • 7. 部署服务
      • 7.1 部署所有yml文件
      • 7.2 部署某个yml文件
    • 8. 初始化集群主节点命令
      • 8.1 配置镜像列表
      • 8.2 拉取镜像
      • 8.3 初始化kubeadm
      • 8.4 其他节点加入集群
      • 8.5 生成join命令
      • 8.6 重置kubeadm
        • 8.6.1 重置kubeadm
        • 8.6.2 移除文件


    命令中使用到的一些自定义参数表示的含义如下
    namespacename 命名空间名称
    podname pod的名称
    selectorname 指yaml中定义的selector参数的值
    pvcname 表示pvc的名称
    deploymentname 表示deployment的名称
    svcname 表示service的名称

    1. 命名空间namespace相关

    1.1 创建命名空间

    kubectl create namespace namespacename
    
    • 1

    如创建一个名为ns-sb的命名空间

    kubectl create namespace ns-sb
    
    • 1

    1.2 查询命名空间

    查看全部命名空间

    kubectl get namespace -A
    
    • 1

    2. 节点node相关

    2.1 查看集群节点

    kubectl get nodes
    
    • 1

    2.2 查看节点健康状态

    kubectl get cs
    
    • 1

    3. 容器pod相关

    3.1 查看pods

    查看所有pod

    kubectl get pod -A
    
    • 1

    查看指定命名空间中的pod

    kubectl get pods -n namespacename
    
    • 1

    如查看命名空间为ns-sb的所有pod

    kubectl get pods -n ns-sb
    
    • 1

    3.2 删除pod

    未设置副本数或者副本数设为0则可用常规删除命令

    kubectl delete pod podname -n namespacename
    
    • 1

    若设置副本数大于等于1时,则需要删除deployment

    kubectl delete deployment name -n namespacename
    
    • 1

    3.3 查看pod详细信息

    查看pod的名称、状态、所在集群的ip、所在节点等信息

    kubectl get pod -o wide -n namespacename
    
    • 1

    3.4 查看pod描述信息

    查看所有pod的详细信息(包含日志信息)

    kubectl describe pod -n namespacename
    
    • 1

    查看指定pod的详细信息(包含日志信息)

    kubectl describe pod podname -n namespacename
    
    • 1

    3.5 查看deployment的日志信息

    查看deployment的日志

    kubectl logs deploymentname -n namespacename
    
    • 1

    3.6 查看问题pod

    查看有问题的pod

    kubectl get pods -l selectorname -n namespacename
    
    • 1

    注:selectorname 指yaml中定义的selector参数的值

    3.7 进入pod

    进入pod

    kubectl exec -it podname -n namespacename -- /bin/bash
    
    • 1

    3.8 退出pod

    退出pod

    exit
    
    • 1

    4. 持久化存储pvc相关

    4.1 查看pvc

    查看全部pvc

    kubectl get pvc -A
    
    • 1

    查看指定命名空间的pvc

    kbuectl get pvc -n namespacename
    
    • 1

    4.2 删除pvc

    kubectl delete pvc pvcname -n namespacename
    
    • 1

    5. 服务svc相关

    即查看service
    svc是service的缩写,两者都可用

    5.1 查看svc

    查看全部svc

    kubectl get svc -A
    
    • 1

    查看指定命名空间的svc

    kubectl get svc -n namespacename
    
    • 1

    5.2 删除svc

    kubectl delete svc svcname -n namespacename
    
    • 1

    6. 查看全部服务

    查看全部服务,包含可选pvc、deploy、pod、svc等,也可全选,如下

    kubectl get pvc,deploy,pod,svc -A
    
    • 1

    7. 部署服务

    7.1 部署所有yml文件

    部署所有yml文件

    kubectl apply -f .
    
    • 1

    7.2 部署某个yml文件

    如部署当前文件夹gitlab-yaml下的redis.yml文件

    kubectl apply -f ./gitlab-yaml/redis.yml
    
    • 1

    以下为拓展

    8. 初始化集群主节点命令

    初始化使用的是kubeadm命令

    8.1 配置镜像列表

    kubeadm config images list
    
    • 1

    指定版本

    kubeadm config images list --kubernetes-version v1.23.0
    
    • 1

    8.2 拉取镜像

    kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers
    
    • 1

    8.3 初始化kubeadm

    kubeadm init \
      --apiserver-advertise-address=172.30.0.224 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.23.0 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16 \
      --ignore-preflight-errors=all
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    –apiserver-advertise-address 集群通告地址(master 机器IP,这里用的万兆网)
    –image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
    –kubernetes-version K8s版本,与上面安装的一致
    –service-cidr 集群内部虚拟网络,Pod统一访问入口,可以不用更改,直接用上面的参数
    –pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致,可以不用更改,直接用上面的参数

    8.4 其他节点加入集群

    加入集群节点的命令(包含token)在初始化完成时输出的内容中,复制保存使用即可

    kubeadm join 172.30.0.224:6443 --token 4uhwg7.ldccrwsxmplqahbc \
            --discovery-token-ca-cert-hash sha256:cf6e896414b3d3169774b38f435d7789a1466c83064c173fc56537ba7e949e81
    
    • 1
    • 2

    8.5 生成join命令

    如果token过期或忘记加入集群的命令,使用以下命令生成新的加入集群命令(包含token)

    kubeadm token create --print-join-command
    
    • 1

    8.6 重置kubeadm

    如果初始化失败,或者需要重新初始化,可执行以下两个命令

    8.6.1 重置kubeadm

    kubeadm reset
    
    • 1

    8.6.2 移除文件

    移除相关文件,不然会重置失败

    sudo rm -fr ~/.kube/  /etc/kubernetes/* var/lib/etcd/*
    
    • 1

    代理访问dashboard
    使用该命令可以将dashboard的服务定位到本机的8001端口

    kubectl proxy
    
    • 1

    会输出Starting to serve on 127.0.0.1:8001
    在这里插入图片描述
    然后访问代理地址
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

    查看访问权限

    kubectl auth can-i create deployments --namespace=kubernetes-dashboard
    
    • 1

    输出yes表示当前用户有权限创建deployments的权限,如果是no则表示没有权限
    在这里插入图片描述
    删除pod


    感谢阅读,祝君暴富!

  • 相关阅读:
    Windows 基础(一):深入理解Windows,掌握命令行与Shell
    R 语言nutrient数据集的可视化
    工程伦理--14.4 中国工程跨文化实践的伦理规范
    机器学习和数据挖掘01- lasso regularization
    【vue】provide/inject
    Umi + React + Ant Design Pro + TS 项目搭建
    opencv的approxPolyDP函数
    浅谈光伏运维平台在机场项目的应用和效益-Susie 周
    Java中多线程的使用,龟兔赛跑
    finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
  • 原文地址:https://blog.csdn.net/mo_sss/article/details/136248946
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号