自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

K9s如何加速Kubernetes的集群管理?

原創(chuàng) 精選
開源
K9s是一個基于終端的UI,可以與Kubernetes集群進行交互。K9s的目的是簡化導(dǎo)航,觀察和管理已部署應(yīng)用程序的過程。K9s持續(xù)監(jiān)視Kubernetes的變化,并提供后續(xù)命令來與所觀察到的資源進行交互。

[[333142]]

【51CTO.com原創(chuàng)稿件】K9s是一個基于終端的UI,可以與Kubernetes集群進行交互。K9s的目的是簡化導(dǎo)航,觀察和管理已部署應(yīng)用程序的過程。K9s持續(xù)監(jiān)視Kubernetes的變化,并提供后續(xù)命令來與所觀察到的資源進行交互。

特征

  • 跟蹤Kubernetes集群中運行的資源的實時活動。
  • 處理Kubernetes標準資源和自定義資源定義。
  • 跟蹤與Pod、容器和節(jié)點等資源相關(guān)的實時指標。
  • 提供標準的集群管理命令,例如log,scaling,port-forward,restart...
  • 通過別名和熱鍵自定義命令快捷方式。
  • 支持擴展K9s插件以創(chuàng)建自己的集群命令。
  • 強大的過濾模式:允許用戶向下鉆并查看與工作負載相關(guān)的資源。
  • 誤差放大:直接深入了解群集資源的問題。
  • 外觀可定制
    • 通過K9s皮膚定義自己的終端外觀。
    • 按資源自定義/安排要顯示的列。
  • 提供查看最小或完整資源定義的切換
  • 通過Pulses和XRay視圖提供群集資源的概述。
  • RBAC
    • 支持查看RBAC規(guī)則,例如群集/角色及其關(guān)聯(lián)的綁定。
    • 反向查找斷言用戶/組或ServiceAccount可以在集群上做什么。
  • 可以直接從K9s內(nèi)置的基準測試對HTTP services/pods進行基準測試,以查看應(yīng)用程序的運行情況,并相應(yīng)地調(diào)整資源請求/限制。
  • K9s提供方便地遍歷Kubernetes資源及其相關(guān)資源。

安裝

K9s可用于Linux、macOS和Windows平臺,可直接參考K9s官方文檔,因為非常簡單這里就不再過多贅述。

命令

K9s是一個用于查看和管理Kubernetes集群的CLI。接下來我們一起學(xué)習一下它的使用方法,感受下它的便捷和強大。

幫助命令

k9s help:列出所有可用的CLI選項

  1. # k9s help 
  2. K9s is a CLI to view and manage your Kubernetes clusters. 
  3.  
  4. Usage: 
  5.   k9s [flags] 
  6.   k9s [command] 
  7.  
  8. Available Commands: 
  9.   helpHelp about any command 
  10.   infoPrint configuration info 
  11.   version Print version/build info 
  12.  
  13. Flags: 
  14.   -A, --all-namespaces Launch K9s in all namespaces 
  15.   --as string  Username to impersonate for the operation 
  16.   --as-group stringArray   Group to impersonate for the operation 
  17.   --certificate-authority string   Path to a cert file for the certificate authority 
  18.   --client-certificate string  Path to a client certificate file for TLS 
  19.   --client-key string  Path to a client key file for TLS 
  20.   --cluster string The name of the kubeconfig cluster to use 
  21.   -c, --command string Specify the default command to view when the application launches 
  22.   --context string The name of the kubeconfig context to use 
  23.   --demo   Enable demo mode to show keyboard commands 
  24.   --headless   Turn K9s header off 
  25.   -h, --help   help for k9s 
  26.   --insecure-skip-tls-verify   If true, the server's caCertFile will not be checked for validity 
  27.   --kubeconfig string  Path to the kubeconfig file to use for CLI requests 
  28.   -l, --logLevel stringSpecify a log level (info, warn, debug, error, fatal, panic, trace) (default "info") 
  29.   -n, --namespace string   If present, the namespace scope for this CLI request 
  30.   --readonly   Disable all commands that modify the cluster 
  31.   -r, --refresh intSpecify the default refresh rate as an integer (sec) (default 2) 
  32.   --request-timeout string The length of time to wait before giving up on a single server request 
  33.   --token string   Bearer token for authentication to the API server 
  34.   --user stringThe name of the kubeconfig user to use 
  35.  
  36. Use "k9s [command] --help" for more information about a command. 

k9s info:獲取關(guān)于K9s運行時的信息(日志、配置等)

  1. # k9s info 
  2.  ____  __.________        
  3. |    |/ _/   __   \______ 
  4. |      < \____    /  ___/ 
  5. |    |  \   /    /\___ \  
  6. |____|__ \ /____//____  > 
  7.         \/            \/  
  8.  
  9. Configuration:   /root/.k9s/config.yml 
  10. Logs:            /tmp/k9s-root.log 
  11. Screen Dumps:    /tmp/k9s-screens-root 

k9s version:查看K9s安裝版本

  1. # k9s version 
  2.  ____  __.________        
  3. |    |/ _/   __   \______ 
  4. |      < \____    /  ___/ 
  5. |    |  \   /    /\___ \  
  6. |____|__ \ /____//____  > 
  7.         \/            \/  
  8.  
  9. Version:    0.19.7 
  10. Commit:     46c2f31249b3b67a16659614bde179c481a547de 
  11. Date:       2020-05-23T17:18:49Z 

啟動命令

k9s:啟動k9s

  1. # 啟動k9s 
  2. k9s 
  3. # 在給定的namespace中運行K9s 
  4. k9s -n mycoolns 
  5. # 運行K9s并通過`pod命令`在pod視圖中啟動 
  6. k9s -c pod 
  7. # 在非默認的KubeConfig上下文中啟動K9s 
  8. k9s --context coolCtx 
  9. # 以只讀模式啟動K9s -禁用所有修改命令(delete,create等) 
  10. k9s --readonly 

快捷鍵

K9s使用別名來定位到大多數(shù)K8s資源。這里貼出K9S官方的按鍵綁定。

 

基本所有的東西都在這張圖里了,看到了不會用怎么辦?別著急,下面我還是和大家一起挨個演示一遍它的用法。

Ctrl a:顯示所有可用資源的別名。

上面介紹k9s的特征時提到過,K9s為我們提供很多快捷鍵和別名,通過這個快捷鍵我們可以快速查看K8s的資源別名(縮寫),幫助我們輕松資源,提高工作效率。

 

第一列為k8s資源名稱,第二列為K9s 控制臺對應(yīng)的資源簡稱(別名),第三列為該資源所在的組。

?:顯示K9s提供的命令控制臺的快捷鍵。

 

Esc:返回/退出。

我們回到初始pod界面,可以看到在default名稱空間下我有兩個pod資源:

 

/:進入過濾模式

輸入/custom,對當前視圖下的資源進行過濾,查找名稱含有custom字符串的所有pod:

 

::進入命令行模式

允許你輸入想要查看的任何資源/資源別名。例如::deploy,:svc......

輸入:ns,查看當前集群的所有namespace:

 

結(jié)果視圖:

 

和k8s一樣,可以查看指定命名空間的資源,例如::cm namespace,:cj namespace。

輸入:cm zhangsan,看一下zhangsan名稱空間下的configmap資源如下:

 

d y l e:分別對應(yīng)于describe yaml logs edit

即查看資源的描述信息、yaml文件和日志,對資源信息進行修改,大家玩兒k8s的都很熟悉,這里細節(jié)沒必要再過多展開了。

Ctrl z:快速定位資源錯誤信息

Ctrl d:刪除選中的K8s資源,刪除前提示

Ctrl k:直接刪除資源,沒有提示

:q Ctrl c:退出K9s

簡直不要太酷了!你只需要付出很少的學(xué)習成本(K9s只要看完我整理的這一篇,在工作中就足夠用了),就能大大提高工作效率,一勞永逸。

配置文件

K9s將其配置文件保存在主目錄的.k9s目錄中$HOME/.k9s/config.yml。我們可以通過修改該文件的字段來存儲K9s當前默認啟動視圖和命名空間信息,下面我列出配置文件中的內(nèi)容和每一項代表的含義和作用,后面可根據(jù)自己的需求對值進行修改即可。

  1. # $HOME/.k9s/config.yml 
  2. k9s: 
  3.   # #表示ui輪詢間隔。默認值2secs  
  4.   refreshRate: 2 
  5.   # 設(shè)置為true以隱藏K9s標頭。默認值false  
  6.   headless: false 
  7.   # 指示是否禁用諸如delete/kill/edit之類的修改命令。默認值為false  
  8.   readOnly: false 
  9.   # 切換圖標顯示,因為并非所有終端都支持這些字符。 
  10.   noIcons: false 
  11.  
  12.   # 日志配置 
  13.   logger: 
  14.     # 定義要返回的行數(shù)。默認100  
  15.     tail: 200 
  16.     # 定義視圖中允許的日志行總數(shù)。默認值1000  
  17.     buffer: 500 
  18.     # 表示以秒為單位返回日志時間軸的距離。默認值為5分鐘(秒) 
  19.     sinceSeconds: 300 
  20.     # 在顯示日志時進入全屏模式。默認值false  
  21.     fullScreenLogs: false 
  22.     # 切換日志換行。默認值false  
  23.     textWrap: false 
  24.     # 切換日志行時間戳信息。默認值false  
  25.     showTime: false 
  26.  
  27.   # 指示當前的kube上下文。默認為當前上下文 
  28.   currentContext: minikube 
  29.   # 表示當前的kube集群。默認為當前上下文集群 
  30.   currentCluster: minikube 
  31.   # 根據(jù)每個集群的命名空間和視圖偏好持久存儲。 
  32.   clusters: 
  33.     cluster1: 
  34.       namespace: 
  35.         active: coolio 
  36.         favorites: 
  37.         - cassandra 
  38.         - default 
  39.       view
  40.         active: po 
  41.       featureGates: 
  42.         # 切換nodeshell支持。如果需要,允許K9s封裝到節(jié)點中。默認為false。 
  43.         nodeShell: false 
  44.       # 提供shell pod啟用自定義gate功能 
  45.       shellPod: 
  46.         # 要使用的Shell Pod鏡像。 
  47.         image: killerAdmin 
  48.         # 要啟動到Shell Pod的namespace。 
  49.         namespace: fred 
  50.         # 在shell容器上設(shè)置的資源限制。 
  51.         limits: 
  52.           cpu: 100m 
  53.           memory: 100Mi 
  54.       # 啟動端口轉(zhuǎn)發(fā)時使用的IP地址。 
  55.       portForwardAddress: 1.2.3.4 
  56.     cluster2: 
  57.       namespace: 
  58.         active: all 
  59.         favorites: 
  60.         - all 
  61.         - kube-system 
  62.         - default 
  63.       view
  64.         active: dp 

自定義命令別名

看到這里了,是時候帶大家真正秀一波K9s的”騷操作“了。掌握了K9s的基本用法,我們可以定制自己的K9s命令了!下面我們接著一起定制一個。

在配置文件config.yml同級目錄$HOME/.k9s下,創(chuàng)建一個名為alias.yml的文件:

  1. # $HOME/.k9s/alias.yml 
  2. alias: 
  3.   # 使用pp作為Pod的別名 
  4.   pp: v1/pods 
  5.  
  6.   # 使用crb作為 ClusterRoleBinding的縮寫 
  7.   crb: rbac.authorization.k8s.io/v1/clusterrolebindings 
  8.  
  9.   # 使用cr作為ClusterRole的簡稱 
  10.   cr: rbac.authorization.k8s.io/v1/clusterroles 
  11.  
  12.   # 使用dep作為Deployments的別名  
  13.   dep: apps/v1/deployments 
  14.  
  15.   # 使用fred作為自定義資源CRD Frederick的別名 
  16.   fred: acme.io/v1alpha1/fredericks 

別名/簡稱/縮寫是相同的意思,這里只是為了便于大家理解。

自定義快捷鍵

進入命令模式并輸入資源名稱或別名對于瀏覽經(jīng)常訪問的資源可能很麻煩。通過利用hotkeys,可以將K9s配置為快速導(dǎo)航到我們的K8s資源。

同樣的,這里我們也可以在$HOME/.k9s目錄下創(chuàng)建一個名為/hotkey.yml的文件,來定制我們自己的快捷鍵:

  1. # $HOME/.k9s/hotkey.yml 
  2. hotKey: 
  3.  
  4.   # 點擊Shift-0導(dǎo)航到pod視圖 
  5.   shift-0: 
  6.     shortCut:    Shift-0 
  7.     description: Viewing pods 
  8.     command:     pods 
  9.  
  10.   # 點擊Shift-0導(dǎo)航到deployments視圖  
  11.   shift-1: 
  12.     shortCut:    Shift-1 
  13.     description: View deployments 
  14.     command:     dp 
  15.  
  16.   # 點擊Shift-0導(dǎo)航到xray deployments視圖   
  17.   shift-2: 
  18.     shortCut:    Shift-2 
  19.     description: XRay Deployments 
  20.     command:     xray deploy 

同樣的,后面你可以基于此方法,自定義插件對K9s進行擴展,也是通過在$HOME/.k9s目錄下,創(chuàng)建一個名為plugin.yml的文件,授人以魚不如授人以漁,這里我希望你可以參照官方文檔自己動手試一試,方法都交給你了,聰明人要學(xué)會要”漁“。

Tt's important to work smarter, not harder.

作者:臧遠慧

 

簡介:就職于中科星圖股份有限公司(北京),研發(fā)部后端技術(shù)組。個人擅長 Python/Java 開發(fā),了解前端基礎(chǔ);熟練掌握 MySQL,MongoDB,了解 Redis;熟悉 Linux 開發(fā)環(huán)境,掌握 Shell 編程,有良好的 Git 源碼管理習慣;精通 Nginx ,F(xiàn)lask、Swagger 開發(fā)框架;有 Docker+Kubernetes 云服務(wù)開發(fā)經(jīng)驗。對人工智能、云原生技術(shù)有較大的興趣。

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責任編輯:武曉燕 來源: 51CTO
相關(guān)推薦

2024-06-07 09:44:10

K9s工具集群

2020-05-13 07:00:00

K9SKubernetes集群

2020-09-09 07:00:00

Kubernetes集群容器

2023-11-07 08:23:05

2020-03-31 12:50:34

樹莓派K3sKubernetes集

2020-07-08 08:03:37

KubernetesLens集群

2019-09-27 16:32:17

虛擬機LinuxDocker

2023-09-11 14:21:00

2022-09-23 09:28:11

KubeSealKubernetesSecret

2021-02-07 08:00:00

Kubernetes集群云原生

2022-05-24 09:00:00

云計算Kubernetes安全

2020-07-27 18:52:34

Kubernetes集群工具

2022-01-17 11:05:11

CFSSLKubernetesLinux

2021-12-30 07:42:13

Kubernetes集群架構(gòu)

2022-09-05 08:26:29

Kubernetes標簽

2015-12-30 14:50:45

Kubernetes容器技術(shù)Docker

2021-07-27 08:25:41

KubernetesBotKube監(jiān)控

2019-08-23 13:10:39

美團點評Kubernetes集群管理

2014-12-24 09:35:29

Docker集群管理kubernetes
點贊
收藏

51CTO技術(shù)棧公眾號