[云原生] K9S:与 Kubernetes 集群交互的开源终端 UI
序
- 推荐一款能够便捷地与 Kubenates 集群及其内服务交互的开源终端 UI 工具。
确实帮了我的大忙。
概述:K9s

简介
K9s提供了一个终端 UI 来与您的Kubernetes集群进行交互。
- 该项目的目的是使其更易于导航、观察和管理 您的应用程序在野外。
K9s持续监视 Kubernetes 进行更改,并提供后续命令以与观察到的资源进行交互。
-
License : Apache 2.0
-
Kubernetes 是什么?
- Kubernetes是一个容器编排平台,可以自动化地部署、扩展和管理容器化应用程序。
- 它是一个开源项目,由Google开发并维护。
- Kubernetes可以在多个云平台上运行,包括AWS、Azure和Google Cloud等。
- Kubernetes支持多种容器运行时,包括Docker和rkt等。
- Kubernetes还支持持久卷,可以为Pod提供数据存储服务。
- Kubernetes网络是支持容器化应用动态和分布式特性的关键因素,您可以通过实施网络策略和服务来确保为Kubernetes集群建立一个稳健、安全和高效的环境。
安装篇
Step1 安装 on Windows 10
- 下载、解压即安装
k9s.exe



- 配置环境变量(
K9S_HOME)【可选步骤,但强烈建议】
便于平时使用CMD命令
k9s即可调用启动
K9S_HOME
D:\Program\K9s\

Path追加配置值
%K9S_HOME%

此时k9s已算是配置好了。现在,在自己的用户名文档下新建个
.k9s文件夹,假定14218是我机器的用户名,如下图

- 再顺便建个
.kube的文件夹,后面会用到。
Step2 安装kubectl on Windows 10
- 一键下载即安装
kubectl.exe
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe


D:\Program\kubectl\kubectl.exe
- 设置环境变量
KUBECTL_HOME(可选步骤,强烈推荐)
KUBECTL_HOME 配置:
D:\Program\kubectl\
Path 追加:
%KUBECTL_HOME%
- 查验使用
kubectl version
出现以下信息表示正确安装和设置.

Step3 下载集群的yaml文件
- 登录远程服务器下载yaml配置文件

图3-1

图3-2
- 到上述的
.kube文件夹中新建文本并将红框中的内容粘贴进去,修改ip后保存为yaml格式。
为了好管理,我在其新建个config文件夹来存放不同集群的yaml
- 接下来同样要将
.kube下的yaml设置个环境变量(KUBECONFIG),如图

图3-3

图3-4
一定要设置个变量名相同的
KUBECONFIG环境变量,指向.kube目录下的yaml文件,不设置或设置错的环境变量名会报找不到变量的错误。
更多的请看 https://k8smeetup.github.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/
- 上面所有操作都做完后就可以直接在dos命令行中输入
kubectl get no和其他kubectl等等命令来操作图-12中的集群了

图3-5
- 或者直接输入k9s

图3-6
- 运行命令后在
.kube和.k9s这两个文件夹中会多出图下文件

图3-7

图3-8
参考文献
功能使用篇
常用命令
- 选择命名空间
ns {命名空间}
- 服务列表
svc
查看K9S版本
k9s version

查看k93信息
- linux 上
[root@localhost ~]# k9s info
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
Configuration: /root/.k9s/config.yml
Logs: /tmp/k9s-root.log
Screen Dumps: /tmp/k9s-screens-root
- windows 上
C:\Users\xxx>k9s info
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
Version: v0.32.7
Config: C:\Users\xxx\AppData\Local\k9s\config.yaml
Custom Views: C:\Users\xxx\AppData\Local\k9s\views.yaml
Plugins: C:\Users\xxx\AppData\Local\k9s\plugins.yaml
Hotkeys: C:\Users\xxx\AppData\Local\k9s\hotkeys.yaml
Aliases: C:\Users\xxx\AppData\Local\k9s\aliases.yaml
Skins: C:\Users\xxx\AppData\Local\k9s\skins
Context Configs: C:\Users\xxx\AppData\Local\k9s\clusters
Logs: C:\Users\xxx\AppData\Local\k9s\k9s.log
Benchmarks: C:\Users\xxx\AppData\Local\k9s\benchmarks
ScreenDumps: C:\Users\xxx\AppData\Local\k9s\screen-dumps
Deployments
deployments

Pods
Pods 管理
pods


- CMD:
kubectl get pods
C:\Users\XXX>kubectl get pods -n cluster-dev
NAME READY STATUS RESTARTS AGE
xxx-auth-67874bc759-m4mbj 1/1 Running 0 16h
xxx-auth-7f477678db-6jbw9 0/1 Pending 0 11h
xxx-gateway-64b4457677-6vhfj 0/1 CrashLoopBackOff 139 (3m40s ago) 11h
xxx-gateway-7b9df8965b-gt4n9 1/1 Running 0 16h
xxx-platform-web-web-service-76c6458b94-wg9jc 1/1 Running 0 4d19h
xxx-system-58c9d77d95-6xtvb 1/1 Running 0 46h
xxx-system-5cc9bd9ffd-bgfjg 0/1 CrashLoopBackOff 139 (3m29s ago) 11h
xxxbackend-service-744d55cbdb-wtrdg 1/1 Running 0 16h
xxxfile-server-594fbb6588-z4wl2 1/1 Running 0 16h
xxxfile-server-867f6f8ffb-qtjph 0/1 CrashLoopBackOff 139 (2m4s ago) 11h
-n: 命名空间
单个 Pod 操作
- k9s: 进入 Pod 内部
s
root@xxxbackend-service-677fxxxccff-krdqb:/# tail -500f ./logs/xxx-backend/xxx-backend-service.log

不安装 kubectl 时,将报错误:
Shell exec failed: kubectl command is not in your path: exec: "kubectl": executable file not found in %PATH%:

注意1:此命令依赖【
kubectl】
注意2:推荐 Windows Terminal ,而非 CMD。Terminal 的安装URL,参见【推荐文献】
- 进入指定 Pod 的交互式 shell
C:\Users\xxx>kubectl -n cluster-uat exec -it xxxbackend-service-7cf7fbc5f4-5gcqj -- ls /logs
//略
C:\Users\xxx>kubectl -n cluster-uat exec -it xxxbackend-service-7cf7fbc5f4-5gcqj -- /bin/bash
...//Pod内的操作,略
root@xxxbackend-service-7cf7fbc5f4-5gcqj:/# exit
exit
command terminated with exit code 130
C:\Users\xxx>
- 查看指定 Pod 的详细信息(提供Pod资源的状态、配置和事件、异常情况等)
CMD:
kubectl -n {Namespace} describe pod {PodName}

- 强制删除指定 Pod
CMD:
kubectl delete pod {PODNAME} -n {NAMESPACE} --grace-period=0 --force
C:\Users\XXX> kubectl delete pod xxx-gateway-64b4457677-6vhfj -n cluster-dev --grace-period=0 --force
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "xxx-gateway-64b4457677-6vhfj" force deleted
Logs

Y 推荐文献
- K9s 【推荐】
- Windows Terminal 【推荐此终端,而非CMD】
解压即安装
Kubernetes 安装部署 / K8s核心组件的解读:
kubelet/kubeadm/kubectl
X 参考文献
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号