中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes的實用技巧有哪些

發布時間:2021-10-21 13:45:54 來源:億速云 閱讀:145 作者:iii 欄目:web開發

本篇內容主要講解“Kubernetes的實用技巧有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Kubernetes的實用技巧有哪些”吧!

 一、kubectl 命令參數自動補全

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

Linux 上,比如 Centos

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

MAC 上

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

Kubectl 常用操作 [1]

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

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

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

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

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

$ kubectl get po -o json --all-namespaces |    jq '.items | group_by(.spec.nodeName) | map({"nodeName": .[0].spec.nodeName, "count": length}) | sort_by(.count)'  [   {     "nodeName": "service1",     "count": 6   },   {     "nodeName": "service3",     "count": 13   } ]

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

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

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

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

apiVersion: "v1" kind: "LimitRange" metadata:   name: "resource-limits"   namespace: default spec:   limits:     - type: "Pod"       max:         cpu: "4"         memory: "4Gi"       min:         cpu: "100m"         memory: "100Mi"     - type: "Container"       max:         cpu: "4"         memory: "4Gi"       min:         cpu: "100m"         memory: "100Mi"       default:         cpu: "500m"         memory: "500Mi"       defaultRequest:         cpu: "100m"         memory: "100Mi"       maxLimitRequestRatio:         cpu: "60"

三、利用 Kubelet 給 Node 預留資源

evictionHard:   imagefs.available: 15%   memory.available: 1G   nodefs.available: 10%   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考慮范圍內。

例子:

apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata:   name: zk-pdb spec:   minAvailable: 2   selector:     matchLabels:       app: zookeeper

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

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

  • Readiness:探針用于確定容器何時準備好接收流量。

  • Liveiness:探針用于確定容器是否健康,如果不健康根據策略判斷是否重新部署一個新的容器來替換。

例子:

readinessProbe:   tcpSocket:     port: 8080   initialDelaySeconds: 5   periodSeconds: 10 livenessProbe:   tcpSocket:     port: 8080   initialDelaySeconds: 15   periodSeconds: 20

到此,相信大家對“Kubernetes的實用技巧有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合肥市| 大竹县| 诸城市| 庐江县| 吉水县| 如东县| 克东县| 定州市| 马关县| 嵊州市| 三穗县| 虹口区| 巫山县| 临漳县| 文登市| 白水县| 鄢陵县| 茶陵县| 孟村| 左权县| 揭西县| 剑阁县| 隆德县| 斗六市| 连山| 太和县| 额尔古纳市| 玉山县| 信丰县| 沈阳市| 壶关县| 曲松县| 阳谷县| 廊坊市| 安顺市| 潮州市| 盱眙县| 华蓥市| 阿城市| 固始县| 彩票|