成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇帶給你Kubernetes 實用技巧

開發 前端
使用 Kubernetes,就一定會使用 Kubectl 命令,默認安裝好 Kubectl 命令不支持自動補全參數。下面配置 Kubectl 命令參數自動補全方法。

[[358889]]

 一、kubectl 命令參數自動補全

使用 Kubernetes,就一定會使用 Kubectl 命令,默認安裝好 Kubectl 命令不支持自動補全參數。下面配置 Kubectl 命令參數自動補全方法:

Linux 上,比如 Centos

  1. $ yum install -y bash-completion 
  2. $ source /usr/share/bash-completion/bash_completion 
  3. $ source <(kubectl completion bash) 
  4. $ echo "source <(kubectl completion bash)" >> ~/.bashrc 

MAC 上

  1. $ brew install bash-completion 
  2. $ source $(brew --prefix)/etc/bash_completion 
  3. $ source <(kubectl completion zsh) 
  4. $ echo 'source <(kubectl completion zsh)' >> ~/.zshrc 

Kubectl 常用操作 [1]

1、如何查找非 running 狀態的 Pod 呢?

  1. $ kubectl get pods -A --field-selector=status.phase!=Running | grep -v Complete 

2、如何查找 running 狀態的 Pod 呢?

  1. $ kubectl get pods -A --field-selector=status.phase=Running | grep -v Complete 

3、獲取節點列表,其中包含運行在每個節點上的 Pod 數量?

  1. $ kubectl get po -o json --all-namespaces |    jq '.items | group_by(.spec.nodeName) | map({"nodeName": .[0].spec.nodeName, "count": length}) | sort_by(.count)' 
  2.  
  3.   { 
  4.     "nodeName""service1"
  5.     "count": 6 
  6.   }, 
  7.   { 
  8.     "nodeName""service3"
  9.     "count": 13 
  10.   } 

4、使用 kubectl top 獲取 Pod 列表并根據其消耗的 CPU 或 內存進行排序

  1. # 獲取 cpu 
  2. $ kubectl top pods -A | sort --reverse --key 3 --numeric 
  3.  
  4. # 獲取 memory 
  5. $ kubectl top pods -A | sort --reverse --key 4 --numeric 

二、添加Namespace默認CPU和內存限制

有時候 Pod 沒有做資源限制,會因為個別 Pod 使用量超出,影響整個宿主機應用。下面給出一個具體例子,可以根據實際情況來調整相關參數。

  1. apiVersion: "v1" 
  2. kind: "LimitRange" 
  3. metadata: 
  4.   name"resource-limits" 
  5.   namespace: default 
  6. spec: 
  7.   limits: 
  8.     - type: "Pod" 
  9.       max
  10.         cpu: "4" 
  11.         memory: "4Gi" 
  12.       min
  13.         cpu: "100m" 
  14.         memory: "100Mi" 
  15.     - type: "Container" 
  16.       max
  17.         cpu: "4" 
  18.         memory: "4Gi" 
  19.       min
  20.         cpu: "100m" 
  21.         memory: "100Mi" 
  22.       default
  23.         cpu: "500m" 
  24.         memory: "500Mi" 
  25.       defaultRequest: 
  26.         cpu: "100m" 
  27.         memory: "100Mi" 
  28.       maxLimitRequestRatio: 
  29.         cpu: "60" 

三、利用 Kubelet 給 Node 預留資源

  1. evictionHard: 
  2.   imagefs.available: 15% 
  3.   memory.available: 1G 
  4.   nodefs.available: 10% 
  5.   nodefs.inodesFree: 5% 

四、利用 Kubernetes RBAC 劃分好權限

多個團隊部署應用到一個kubernetes集群時,情況就可能變得很復雜。切記不要把管理員權限開放給每個人。個人建議是,根據命名空間來區分隔離每個團隊,然后使用RBAC策略只允許各自團隊訪問各自的命名空間。

如果我們把管理員權限開放給每個人,那么在pod級上進行讀取、創建和刪除訪問時,可能讓人抓狂,因為誤操作的情況會經常發生。為此,應該只允許管理員有權訪問,從而將管理集群和部署集群的人員權限區分開。

五、充分利用 PodDisruptionBudget 控制器

如何保證在 kubernetes 集群中的應用程序總能正常運行?

答案:是使用 PodDisruptionBudget 控制器。

在進行 kubectl drain 操作時,kubernetes 會根據 PodDisruptionBudget 控制器判斷應用Pod集群數量,進而保證在業務不中斷或業務SLA不降級的情況下進行應用Pod銷毀。PDB(PodDisruptionBudget)應該放在每個擁有一個以上實例的deployment上。我們可以使用簡單yaml為集群創建PDB,并使用標簽選擇器確定PDB應該作用在哪些帶有標簽的資源上。

  • 注意:PDB只考慮主動中斷,硬件故障之類的情況不在PDB考慮范圍內。

例子:

  1. apiVersion: policy/v1beta1 
  2. kind: PodDisruptionBudget 
  3. metadata: 
  4.   name: zk-pdb 
  5. spec: 
  6.   minAvailable: 2 
  7.   selector: 
  8.     matchLabels: 
  9.       app: zookeeper 

六、使用探針來檢測應用的狀態

Kubernetes 支持配置探針。kubelet 使用探針來確定Pod中應用程序是否健康。K8S 提供了兩種類型來實現這一功能,Readiness 探針和 Liveiness 探針。

  • Readiness:探針用于確定容器何時準備好接收流量。
  • Liveiness:探針用于確定容器是否健康,如果不健康根據策略判斷是否重新部署一個新的容器來替換。

例子:

  1. readinessProbe: 
  2.   tcpSocket: 
  3.     port: 8080 
  4.   initialDelaySeconds: 5 
  5.   periodSeconds: 10 
  6. livenessProbe: 
  7.   tcpSocket: 
  8.     port: 8080 
  9.   initialDelaySeconds: 15 
  10.   periodSeconds: 20 

參考鏈接

  • [1] https://mp.weixin.qq.com/s/fJpSlVOywrgIhejsWSvhbw
  • [2] https://zhuanlan.zhihu.com/p/81666500

 

 

責任編輯:姜華 來源: YP小站
相關推薦

2023-03-29 07:45:58

VS編輯區編程工具

2021-09-13 07:46:06

Kubectl Kubernetes 工具

2021-07-12 06:11:14

SkyWalking 儀表板UI篇

2021-06-21 14:36:46

Vite 前端工程化工具

2021-01-28 08:55:48

Elasticsear數據庫數據存儲

2021-04-14 14:16:58

HttpHttp協議網絡協議

2021-04-08 11:00:56

CountDownLaJava進階開發

2021-07-21 09:48:20

etcd-wal模塊解析數據庫

2024-06-13 08:34:48

2022-03-22 09:09:17

HookReact前端

2022-04-29 14:38:49

class文件結構分析

2021-04-01 10:51:55

MySQL鎖機制數據庫

2021-03-12 09:21:31

MySQL數據庫邏輯架構

2022-02-17 08:53:38

ElasticSea集群部署

2022-02-25 15:50:05

OpenHarmonToggle組件鴻蒙

2021-04-23 08:59:35

ClickHouse集群搭建數據庫

2021-07-08 07:30:13

Webpack 前端Tree shakin

2023-03-13 09:31:04

2021-10-28 08:51:53

GPIO軟件框架 Linux

2021-04-14 07:55:45

Swift 協議Protocol
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产乱码久久久久久88av | 91欧美精品成人综合在线观看 | 国产丝袜一区二区三区免费视频 | 国产高清无av久久 | 日本小电影网站 | 亚洲激情一级片 | 欧美性猛交一区二区三区精品 | www.887色视频免费 | 国产精品18久久久久久白浆动漫 | 日韩欧美亚洲一区 | 成人激情视频免费观看 | 亚洲激情综合网 | 国产91色在线 | 亚洲 | eeuss国产一区二区三区四区 | 日韩和的一区二在线 | 日韩另类 | 欧美三级在线 | 亚洲品质自拍视频网站 | julia中文字幕久久一区二区 | 成人精品在线观看 | 欧美日产国产成人免费图片 | 国产99久久精品一区二区永久免费 | 久久久国产一区 | 四虎影视免费观看 | 国产精品美女久久久久久久久久久 | 久久99视频精品 | 99国产精品久久久久老师 | 欧美一区二区黄 | 中文精品视频 | 福利网站在线观看 | 狠狠伊人 | 国产综合精品一区二区三区 | 亚洲欧美精品国产一级在线 | 夜夜夜夜草 | 中文字字幕在线中文乱码范文 | 久久久久久综合 | 日韩一区二区在线视频 | 国产一区 在线视频 | 一级做a爰片性色毛片16 | 国产成人综合在线 | 亚洲精品久久久久久一区二区 |