云原生Kubernetes:K8S实用插件和工具

2023-11-01

目录

一、理论

1.Kubectl插件

2.kubens 

3.krew

二、实验

1.kubectl插件

2.kubens 

3.krew


一、理论

1.kubectl插件

(1)概念

kubectl插件其实就是以kubectl-为前缀的任意可执行文件,比如执行:

ln -s /bin/echo /usr/local/bin/kubectl-echo

此时就相当于安装了个echo的kubectl插件,kubectl插件可以通过kubectl + 插件名执行,kubectl xxx其实就是相当于运行kubectl-xxx

2.kubens 

(1)概念

k8s每次查看指定命名空间的资源都需要加 -n 命名空间 来指定命名空间,我们可以通过开源项目kubens来切换当前命名空间,切换命名空间后,就无需每次都使用 -n 命令来指定命名空间了

(2)下载安装(第一种方式)

线上安装:

curl -L https://github.com/ahmetb/kubectx/releases/download/v0.9.1/kubens -o /bin/kubens
chmod +x /bin/kubens
kubens <命名空间名称>

 列出所有 ns

[root@master ~]# kubens
default
kube-flannel
kube-node-lease
kube-public
kube-system

切换 ns

##切换命名空间为kube-system
[root@master ~]# kubens kube-system
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "kube-system".
[root@master ~]# 

##切换命名空间后,无需指定命名空间,即可查看切换后的命名空间资源
[root@master ~]# kubectl get pods   
NAME                                    READY   STATUS    RESTARTS   AGE
coredns-bccdc95cf-5wqbn                 1/1     Running   0          19h
coredns-bccdc95cf-jqtzh                 1/1     Running   0          19h
etcd-master                             1/1     Running   5          8d
kube-apiserver-master                   1/1     Running   5          8d
kube-controller-manager-master          1/1     Running   5          8d
kube-flannel-ds-amd64-cqzr2             1/1     Running   4          7d22h
kube-flannel-ds-amd64-kj6kr             1/1     Running   5          7d22h
kube-flannel-ds-amd64-pkcnl             1/1     Running   4          7d22h
kube-proxy-d6scc                        1/1     Running   6          8d
kube-proxy-gjmvl                        1/1     Running   5          8d
kube-proxy-zw6sj                        1/1     Running   5          8d
kube-scheduler-master                   1/1     Running   5          8d
kubernetes-dashboard-859b87d4f7-phhlt   1/1     Running   4          7d20h
[root@master ~]# 

(3)下载安装(第二种方式)

离线安装:

1. 查看插件列表 
https://github.com/kubernetes-sigs/krew-index/tree/master/plugins

2.  下载需要插件 ns 的yaml文件
wget https://github.com/kubernetes-sigs/krew-index/blob/master/plugins/ns.yaml

3.  获取 ns 插件所需要软件包
[root@master ~]# cat ns.yaml |grep uri
    uri: https://github.com/ahmetb/kubectx/archive/v0.9.4.tar.gz

4. 下载
wget   https://github.com/ahmetb/kubectx/archive/v0.9.4.tar.gz

5. 安装
kubectl krew install --manifest=ns.yaml --archive=v0.9.4.tar.gz

6. 验证
[root@master ~]# kubectl ns
default
ingress-nginx
kube-node-lease
kube-public
kube-system


 

3.krew

(1) 概念

krew是kubectl插件的包管理工具。借助Krew,可以轻松地使用kubectl plugin:发现插件、安装和管理插件。使用类似apt、dnf或者brew。

对于kubectl用户:krew能帮助用户搜索、安装和管理kubectl插件;
对于插件开发者:krew可以帮助你在多种平台上打包和发布插件。

Krew 是一个由 Kubernetes SIG CLI 社区维护的 kubectl 命令行工具的插件管理器,Krew 默认以用户主目录下的隐藏目录 .krew 为工作目录。

Krew 插件索引 所维护的 kubectl 插件并 未经过安全性审查。 安装前需了解安装和运行第三方插件的安全风险。
 

(2)下载安装krew(离线安装)

krew仅兼容kubectl v1.12或更高版本,安装过程如下:

1. yum install git -y

2.  wget https://github.com/kubernetes-sigs/krew/releases/latest/download/krew-linux_amd64.tar.gz && tar zxvf krew-linux_amd64.tar.gz

3. 获取krew.yaml文件
wget https://github.com/kubernetes-sigs/krew-index/blob/master/plugins/krew.yaml

4. 查看krew.yaml  获取krew安装包地址
cat krew.yaml|grep krew-linux_amd64
          <td id="LC53" class="blob-code blob-code-inner js-file-line">  - <span class="pl-ent">uri</span>: <span class="pl-s">https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz</span></td>

5. 下载 krew安装包
wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz

6. 安装:
./krew-linux_amd64 install --manifest=krew.yaml --archive=krew-linux_amd64.tar.gz

7. 加载环境变量 vi ~/.bashrc
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

8. 验证
[root@master ~]# kubectl krew  -h
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."

Usage:
  kubectl krew [command]

Available Commands:
  completion  generate the autocompletion script for the specified shell
  help        Help about any command
  index       Manage custom plugin indexes
  info        Show information about an available plugin
  install     Install kubectl plugins
  list        List installed kubectl plugins
  search      Discover kubectl plugins
  uninstall   Uninstall plugins
  update      Update the local copy of the plugin index
  upgrade     Upgrade installed plugins to newer versions
  version     Show krew version and diagnostics

(4)krew的使用

kubectl krew search               # 显示所有插件
kubectl krew install view-secret  # 安装名为view-secret的插件
kubectl view-secret               # 使用该插件
kubectl krew upgrade              # 升级安装的插件
kubectl krew remove view-secret   # 卸载插件

 (5)images插件

images插件允许你查看当前命名空间(甚至整个集群)Workload中使用的镜像信息。这个对运维的同学来说比较友好,可以节省大部分descript pod的操作。当前支持几个功能如下:

列出所有命名空间workload的镜像信息

指定字段展示镜像的关联k8s信息

指定单独的命名空间展示镜像信息

安装:

kubectl krew install images

(6)view-secret 插件

大部分情况下,我们secret里面的信息会事先经过base64编码后存储。当我们需要从secret里面读取内容在做decode,有时也不免糟心。比如我们想从secret里面取SA的token,虽然我们可以用jsonpath | decode拿到信息

kubectl get secret <secret> -o=jsonpath='{.data.token}' |base64 -d

但是运维人员的目标能少打命令绝不多敲一个字母。那么这个时候view-secret就可以帮助到我们。

kubectl krew install view-secret

(7)view-allocations 插件

对于想快速知道当前你的kubernetes集群资源分布情况,view-allocations这个插件它一定能够帮助。view-allocations当前能够根据resource,node和pod三个维度展示集群当前的资源分配状况。值得一提的是如果你的kubernetes集群有GPU节点,采用view-allocations也可以快速查到你的GPU显卡分配状态.

Resource      Requested  %Requested        Limit  %Limit  Allocatable     Free
  nvidia.com/gpu  14.0       70%         14.0     70%          20.0      6.0
  ├─ node1        4.0        100%          4.0    100%          4.0      0.0
  ├─ node2        3.0         75%          3.0     75%          4.0      1.0
  ├─ node3        0.0          0%          0.0      0%          4.0      4.0
  ├─ node4        4.0        100%          4.0    100%          4.0      0.0
  └─ node5        3.0         75%          3.0     75%          4.0      1.0

(8)shell脚本连续下载

需要的把images替换成想下载的资源。

#!/bin/bash
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
while true;
do
 kubectl krew install images
 sleep 5;
done

二、实验

1.kubectl插件

(1)执行

(2)输出

2.kubens 

(1)下载安装

(2)列出所有 ns

(3)切换 ns

切换命名空间为kube-system

切换命名空间后,无需指定命名空间,即可查看切换后的命名空间资源

3.krew

(1) 安装git

(2)准备2个文件

(3)安装

(4)加载环境变量

(5)查看版本

(6)验证


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

云原生Kubernetes:K8S实用插件和工具 的相关文章

随机推荐

  • python算法中的深度学习算法之强化学习(详解)

    目录 学习目标 学习内容 强化学习 环境建模 Markov决策过程
  • C++11 -- 入门基础知识

    文章目录 C 11简介 列表初始化 std initializer list 变量类型推导 nullptr 范围for循环 STL中的一些变化 C 11简介 在2003年C 标准委员会曾经提交了一份技术勘误表 简称TC1 使得C 03这个名
  • uniapp+vue3+vite+ts+uviewPlus搭建项目

    创建项目架构 首先使用官方提供的脚手架创建一个项目 这里我创建的 vue3 vite ts 的项目 npx degit dcloudio uni preset vue vite ts project name 如命令行创建失败 请直接访问
  • python selenium启动常用

    加载超时设置 browser set page load timeout 5 二进制转16进制 a 00000000 hex int a 2 from selenium import webdriver import time from s
  • Python学习-----流程控制3.0(习题实操)

    目录 前言 1 求和 2 求阶乘 3 输出100以内的奇数 4 打印九九乘法表 5 斐波那契数列 6 打印空心矩形 7 打印三角形 8 求两个数字之间的最大公约数 9 质数问题 10 进制数转换 11 字符统计 12 字符匹配问题 13 求
  • 终于有人把数据指标体系讲明白了

    来源 数据学堂 数据岗的核心职能 在于产出数据资产 提升信息的价值密度 而指标体系就是一个组织最为重要的数据资产 那么 1 为什么指标体系这么重要 2 什么是指标体系 3 指标体系的衡量标准是什么 4 如何去搭建一套好的指标体系 只要弄清楚
  • C++ primer 第十一章习题

    chapter11 关联容器 文章目录 chapter11 关联容器 练习 11 1 节练习 练习11 1 练习11 2 练习11 3 练习11 4 11 2 1 节练习 练习11 5 练习11 6 练习11 7 练习11 8 11 2 2
  • 脏牛提权(cve-2016-5159)

    漏洞范围 大于2 6 22版本 2007年发行 到2016年10月18日修复 危害 低权限的用户可利用这一漏洞在本地进行提权 原理 linux内核的子系统在处理写入时复制至产生了竞争条件 恶意用户可利用此漏洞来获取高权限 对只读内存映射进行
  • 如何快速选择开源许可证License,看这三个就够了

    开源License很多 如果你不想在License耗费太多精力 那么推荐你重点了解这三种 GPL Apache License及MIT 这三种在开源License中很具代表性 使用广泛 且简洁易理解 同时 这三种license是经过OSI
  • MySQL数据库学习

    目录 从管理员cmd页面打开数据库 创建一个用户 数据库的基本操作 数据完整性 完整性约束管理 表的基本操作 判断关键字 聚合函数 多表连接查询 嵌套查询 联合查询 事务 锁 索引 视图 存储过程 函数 与存储过程类似 光标 触发器 JAV
  • lazarus调用http接口解析json(迎接云计算适应微服务)

    lazarus 跨平台free pascal语言ide工具 社区 http www fpccn com 下载 ftp freepascal dfmk hu pub lazarus 号称一次编码 到处编译 window linux macos
  • 制造业数据治理白皮书(2022版)

    全书基于双方赋能一线制造业企业数字化转型过程的实操践行 经验沉淀和所感所悟 分别从背景及趋势 现状与挑战 实施途径 典型案例等角度揭示了当下制造业数据治理的重要性 关注公众号 互联互通社区 回复 DATA176 获取全部报告内容 精彩推荐
  • ES集群宕机后处理——重新分配shards,负载均衡

    ES集群5台机器 由于同时读写导致其中一台机器宕机 原本每天的索引shard数设定为10 这样5台机器每台分配2个shard 但是一旦集群宕机 重启集群后 5号机器宕机导致它上面的shard会转移到其他1 4号机器上 如果此时往ES里写数据
  • UE4_DatatTable数据保存

    UE4 提供了很多数据持久的工具 很多 1 2 3 网上使用UE4 c 操作DataTable的也很多 不接入别人的链接了 使用C 操作DataTable修改数据也没啥大的问题 坑爹的地方 修改完数据之后 重启编辑器之后 修改的数据恢复之前
  • 线性、非线性分类器&数据的线性、非线性

    线性 非线性分类器 数据的线性 非线性 一 线性分类器 有无数个可划分这两个线性可分类的超平面 在二维空间里面 一个线性分类器是一条线 图14 8展示了五个分类例子 这些线有一个函数形式w1x1 w2 x2 b 线性分类器的分类规则是 如果
  • Unity如何使用手机进行调试(真机)

    文章目录 手机操作 具体步骤 Unity操作 错误处理 没有检测到手机 手机操作 首先打开手机的 USB调试 开关 具体步骤 这里以华为手机举例 手机的系统是EMUI10 具体操作如下 首先打开手机 gt 进入 设置 找到 关于手机 连续点
  • linux内核模块作用,Linux内核模块(二)

    ko kernel object so shared object root rhel6 ls lib modules uname r kernel arch x86 kvm kvm amd ko kvm intel ko kvm ko 通
  • 强化学习奖励和状态设计

    奖励 1 稀疏奖励问题 2 奖励模式化问题 3 奖励不能太过于全局化 4 记住一些常用的奖励设置方式 5 逆向强化学习自动涉及回报函数 6 避免奖励异常问题 贪婪 来回踱步 胆怯 不敢走 主线奖励太小 鲁莽 惩罚不够 7 采用reward
  • Excel文件导出总结,包含大数据量的分批导出方式

    文章目录 更新记录 需求背景 参考内容 导出方式 代码实现 Excel4J 普通导出 POI原生方式 普通导出 大数据量分批导出 2023 08更新 实际应用记录 依赖版本 实现思路 POI工具类 数据写入 调用测试 测试结果 一个小意外
  • 云原生Kubernetes:K8S实用插件和工具

    目录 一 理论 1 Kubectl插件 2 kubens 3 krew 二 实验 1 kubectl插件 2 kubens 3 krew 一 理论 1 kubectl插件 1 概念 kubectl插件其实就是以kubectl 为前缀的任意可