码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【云原生之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资源
        • 4.2 在线修改
      • 5、删除资源配置清单
        • 5.1 陈述式删除
        • 5.2 声明式删除

    在这里插入图片描述

    一、陈述式管理

    1、陈述式资源管理方法

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

    2、k8s相关信息查看

    2.1 查看版本信息

    kubectl version
    在这里插入图片描述

    2.2 查看节点信息

    kubectl get nodes
    在这里插入图片描述

    2.3 查看资源对象简写

    kubectl api-resources
    在这里插入图片描述

    2.4 查看集群信息

    kubectl cluster-info
    在这里插入图片描述

    2.5 配置kubectl自动补全

    source <(kubectl completion bash)
    
    • 1

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

    2.6 查看日志

    journalctl -u kubelet -f
    
    • 1

    在这里插入图片描述

    2.7 基本信息查看

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

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

    1. –all-namespaces或-A:表示显示所有命名空间
    2. –show-labels:显示所有标签
    3. -l app:仅显示标签为app的资源
    4. -l app=nginx:仅显示包含app标签,且值为nginx的资源

    2.7.1 查看master节点状态

    kubectl get componentstatuses
    
    #componentstatues可以缩写成cs
    kubectl get cs
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.7.2 查看命名空间

    kubectl get namespace
    
    #namespace可以缩写成ns
    kubectl get ns
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.8 命名空间操作

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

    kubectl get all [-n default]
    
    • 1

    由于deafult为缺省空间,当不指定命名空间时默认查看default命名空间
    在这里插入图片描述

    2.8.2 创建命名空间

    kubectl create ns lcdb
    
    • 1

    在这里插入图片描述

    2.8.3 删除命名空间

    kubectl delete ns lcdb
    
    • 1

    在这里插入图片描述

    2.9 deployment/pod操作

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

    kubectl create deployment nginx-test --image=nginx -n kube-public
    
    • 1

    在这里插入图片描述

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

    kubectl describe deployment nginx-test -n kube-public
    
    • 1

    在这里插入图片描述

    kubectl describe pod nginx-test -n kube-public
    
    • 1

    在这里插入图片描述

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

    kubectl get pods -n kube-public
    
    • 1

    在这里插入图片描述

    2.9.4 登录容器

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

    kubectl exec -it nginx-test-795d659f45-wl9b7 bash -n kube-public
    
    • 1

    在这里插入图片描述

    2.9.5 删除(重启)pod资源

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

    kubectl delete pod nginx-test-795d659f45-wl9b7 -n kube-public
    kubectl get pod -n kube-public
    
    • 1
    • 2

    在这里插入图片描述

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

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

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

    2.9.7 扩缩容

    2.9.7.1 扩容
    kubectl scale deployment nginx-test --replicas=3 -n kube-public
    
    • 1

    在这里插入图片描述

    2.9.7.2 缩容
    kubectl scale deployment nginx-test --replicas=1 -n kube-public
    
    • 1

    在这里插入图片描述

    2.9.8 删除副本控制器

    kubectl delete deployment nginx-test -n kube-public
    
    • 1

    在这里插入图片描述

    2.10 增加/删除label

    2.10.1 增加label

    kubectl label deploy nginx-test version=nginx1.14
    
    • 1

    在这里插入图片描述

    2.10.2 删除label

    kubectl label deploy nginx-test version-
    
    • 1

    在这里插入图片描述

    二、声明式管理

    1. 声明式管理方法

    1. 适合于对资源的修改操作
    2. 声明式资源管理方法依赖于资源配置清明文件对资源进行管理
    3. 资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
    4. 对资源的观念里,是通过实现定义在同一资源配置清单内,再通过陈述式命令应用到k8s集群里
    5. 语法格式:kubectl create/apply/delete -f -o yaml

    2、查看资源配置清单

    kubectl get deploy/nginx-test -o yaml
    
    • 1

    在这里插入图片描述

    kubectl get service nginx-service -o yaml
    
    • 1

    在这里插入图片描述

    3. 解释资源配置清单

    kubectl explain deployment.metadata
    
    • 1

    在这里插入图片描述

    kubectl explain service.metadata
    
    • 1

    在这里插入图片描述

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

    4.1 离线修改

    4.1.1 修改yaml文件

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

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

    在这里插入图片描述

    4.1.2 删除资源

    kubectl delete -f nginx-svc.yaml
    
    • 1

    在这里插入图片描述

    4.1.3 新建资源

    kubectl apply -f nginx-svc.yaml
    
    • 1

    在这里插入图片描述

    4.1.4 查看service资源

    kubectl get svc
    
    • 1

    在这里插入图片描述

    4.2 在线修改

    直接使用kubectl edit service nginx-service在线编辑配置资源清单并保存退出即时生效(如port: 888)
    PS:此修改方式不会对yaml文件内容修改

    kubectl edit service nginx-service
    
    • 1

    在这里插入图片描述
    查看service资源

    kubectl get svc
    
    • 1

    在这里插入图片描述

    5、删除资源配置清单

    5.1 陈述式删除

    kubectl delete service nginx-service
    
    • 1

    在这里插入图片描述

    5.2 声明式删除

    kubectl delete -f nginx-svc.yaml
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    clickhouse使用心得
    Linux 查看 CPU核数 及 内存
    【TypeScript】掌握 TypeScript 这些官方工具类型
    webpack-clean-plugin webpack-css-plugin 定义全局参数 webpack-压缩css代码
    在 uniapp 中 一键转换单位 (px 转 rpx)
    string 类以及模拟实现
    将Eureka服务注册到Eureka中心
    软件流程和管理(四):PMP & Stakeholder Management
    史上最全的Redis基础+进阶项目实战总结笔记
    QMake中的预变量和库链接方式
  • 原文地址:https://blog.csdn.net/qq_45088125/article/details/126054194
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号