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

news2024/12/26 22:46:30

目录

一、理论

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)验证


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis-plus 自动生成代码

Mybatis-plus 自动生成代码 这里主要是介绍 Mybatis-plus 自动生成代码操作流程&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis …

一点整理

&#xff08;1&#xff09; 美国在2010年以后开始流行数字化转型的。 在2010年以前&#xff0c; 2006年社交网络FB “YOU”&#xff1a;在2004-2006 Web2.0热之前&#xff0c;企业是无法直接触达到每个消费者的2006年Amazon电子商务&#xff1a;这个是我瞎凑的&#xff0c;但因…

js中如何实现一个简单的防抖函数?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 防抖函数⭐ 使用示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏…

第一颗国产 单/双端口 MIPI CSI/DSI 至 HDMI 1.4 发射器 芯片LT9611

1. 描述 LT9611 MIPI DSI/CSI 至 HDMI1.4 桥接器具有双端口 MIPI D-PHY 接收器前端配置&#xff0c;每个端口有 4 个数据通道&#xff0c;每个数据通道以 2Gbps 的速度工作&#xff0c;最大输入带宽为 16Gbps。 该桥接器提供一个 HDMI 数据输出&#xff0c;具有可选的 …

(面试经典刷题)挑战一周刷完150道-Python版本-第1天(11个题)

一、合并数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0…

Multisim14.0仿真(十一)差分放大器

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a;

c++仿照string类,完成myString 类

#include <iostream> #include <cstring>using namespace std;class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10){str new char[size1]; //构造出一个长…

Java“牵手”1688商品详情数据,1688商品详情接口,1688API接口申请指南

1688商品详情API接口的作用是获取1688平台上某个商品的详细信息&#xff0c;包括商品标题、价格、图片、规格、参数、店铺信息等。 开发者可以通过该接口获取到商品的原始数据&#xff0c;方便进行数据分析、价格比较、爬取等操作。通过该接口获取到的商品详情数据可以结合其他…

tkintter四大按钮:Button,Checkbutton, Radiobutton, Menubutton

文章目录 四大按钮Button连击MenubuttonCheckbuttonRadiobutton tkinter系列&#xff1a; GUI初步&#x1f48e;布局&#x1f48e;绑定变量&#x1f48e;绑定事件&#x1f48e;消息框&#x1f48e;文件对话框控件样式扫雷小游戏&#x1f48e;强行表白神器 四大按钮 tkinter中…

有哪些常用的压力测试工具,移动网站压力测试流程有哪些内容?

压力测试工具 在移动网络飞速发展的今天&#xff0c;移动网站成为企业对外宣传、开展业务的重要窗口&#xff0c; 对于访客量大的网站来说&#xff0c;一旦其无法承受过于巨大的流量&#xff0c;就会使网站崩溃&#xff0c;进而影响公司正常的业务。与之相对应的&#xff0c;…

故障排除指南:解决 Kibana Discover 加载中的 6 个常见问题

作者&#xff1a;Steffanie Nestor Discover 是 Elastic 的核心 Kibana UI&#xff0c;用于搜索、过滤和检查&#xff08;时间序列&#xff09;数据。 可视化用于数据聚合/摘要。 Discover UI 对于大数据 Elasticsearch 响应具有弹性&#xff0c;但有时会因&#xff08;未压缩的…

VRTK4⭐一.VRTK4和VRTK的区别 , 及VRTK4简介

文章目录 &#x1f7e5; VRTK4和VRTK的区别1️⃣ 版本区别2️⃣安装方式区别 &#x1f7e7; 安装VRTK41️⃣ AssetStore网址2️⃣安装不同功能的包 &#x1f7e9;Tilia的独立功能包介绍及配置方法&#x1f381;Tilia.CameraRigs.SpatialSimulator.Unity [重要]&#x1f381;Til…

济南市图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

济南市图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

ASP.NET+sqlserver通用电子病历管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码&#xff0c;界面十分美观&#xff0c;功能也比较全面&#xff0c;比较适合 作为毕业设计、课程设计、使用&#xff0c;感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面&#xff0c;具体介绍如下&…

【Java 基础篇】Java TreeSet 详解:红黑树实现的有序集合

Java 集合框架提供了多种数据结构&#xff0c;用于存储和操作数据。其中&#xff0c;TreeSet 是一种特殊类型的集合&#xff0c;它通过红黑树&#xff08;Red-Black Tree&#xff09;数据结构实现了有序的、唯一元素存储。本篇博客将深入探讨 TreeSet&#xff0c;包括其概念、特…

【C++技能树】手撕AVL树 --插入与旋转详解

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0.平衡搜索二叉树概念0.1 平衡因子 1.插入1.1 普通插入操作1.2更新平衡因子 2.旋转2.1 左单旋2.2 右单旋2.3 右左双旋2.4 左右双旋 3. 旋…

量化:Fama-French五因子模型复现

文章目录 参考三因子模型概述策略设计 五因子模型概述 参考 掘金-fama三因子 b站-fama三因子 知乎-fama五因子 因子溢价、因子暴露及用途 三因子模型 概述 在CAPM模型的基础上加入了两个因子提出了三因子模型&#xff0c;三因子分别为 市场因子MKT规模因子SMB&#xff08;S…

收货已完成,删除采购订单没有任何提示

收货已完成或发票已校验&#xff0c;此时删除订单系统是不允许的&#xff0c;正常会报错06115&#xff0c; 现在问题是生产机不报这个消息&#xff0c;直接删除了订单行&#xff0c;查了一下资料&#xff0c;都说这个配置是系统写死的&#xff0c;通过增加06115的消息号 也不起…

算法:经典贪心算法--跳一跳[2]

1、题目&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 返回到达 nums[n - 1] 的最小跳跃次数。生…

Maven 安装配置

Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …