日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何提升Kubernetes生產(chǎn)力?我有5個實用技巧分享給你

在觀察和閱讀很多其它人操作 Kubernetes 和 Istio 的過程中,我了解到了他們?yōu)榱诉M一步提高生產(chǎn)力,在搭建環(huán)境以及使用各類工具、技巧和訣竅過程中積累的經(jīng)驗。本文總結(jié)了我每天都會使用的 5 個技巧和工具,它們進一步提高了我操作 Kubernetes 和 Istio 時的生產(chǎn)力。

為陽朔等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及陽朔網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、陽朔網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1. 在 Kubernetes 上下文之間切換 

如果同時運行本地 Kubernetes 實例以及一個或多個云端 Kubernetes 實例,那么你可能時不時就需要在不同上下文之間切換。Kubernetes CLI(kubectl)提供了用于在不同上下文之間執(zhí)行操作的命令,例如:

current-contextget-contextsrename-contextdelete-contextset-context – use-context

對于想要切換到的 Kubernetes 上下文,如果知道它的名稱,那么可以使用如下的命令:

 
 
 
 
  1. kubectl use-context [CONTEXT-NAME]  

但如果需要操作多個集群,并且不知道各種上下文的名稱,此時就需要首先列出所有上下文,隨后像這樣運行 use-context 命令:

 
 
 
 
  1. $ kubectl get-contexts  
  2. CURRENT   NAME            CLUSTER         AUTHINFO        NAMESPACE  
  3. *         docker-desktop  docker-desktop  docker-desktop  
  4.           minikube        minikube        minikube  
  5.           cloudc          crdambvg43d     user-crdambvg43d  
  6. $ kubectl use-context minikube  

其實還有更簡單的方法。我用了一款名為 kubectx 的工具,該工具可以列出不同的 Kubernetes 上下文并快速切換。若要列出上下文,可以這樣運行 kubectx:

 
 
 
 
  1. $ kubectx 
  2. docker-desktop 
  3. minikub 
  4. cloudc 

切換至不同上下文的方法也很簡單:

 
 
 
 
  1. $ kubectx [CONTEXT-NAME] 

2. 在 Kubernetes 名稱空間之間切換

在操作 Kubernetes 時,處理來自不同名稱空間的資源,這也是一種很常見的做法。例如,你可能希望列出一個名稱空間內(nèi)的所有 Pod,隨后檢查另一個名稱空間中的服務(wù)。此時我的做法是使用 Kubernetes CLI 所支持的 --namespace 標記。例如,若要查看名為 Test 的名稱空間中的所有 Pod,可以運行 kubectl get pods -n test。默認情況下,如果不提供名稱空間標記,將使用默認的 Kubernetes 名稱空間,即 default。

這個默認值可以在 kubeconfig 文件中修改,例如我們可以將默認名稱空間設(shè)置為 test、kube-system 或其他任何名稱空間。這樣在查詢資源時就不需要使用 --namespace 標記了。不過更改默認值的命令略微繁瑣:

 
 
 
 
  1. $ kubectl config set contexts.my-context.namespace my-namespace 

上述命令會更改 my-context 上下文的 Namespace 字段,將其改為 my-namespace。這也意味著,舉例來說,如果切換到 my-context 隨后運行 kubectl get pods,將只能看到 my-namespace 名稱空間下的 Pod。

除了使用 kubectx,我們還可以使用一款名為 kubens 的工具,后者可以幫助我們列出并切換至不同名稱空間。

 
 
 
 
  1. $ kubens 
  2. default 
  3. docker 
  4. kube-node-lease 
  5. kube-public 
  6. kube-system 

為所選上下文設(shè)置默認名稱空間,這也是一種快速簡單的操作:

 
 
 
 
  1. $ kubens default  
  2. Context "docker-desktop" modified.  
  3. Active namespace is "default".  

3. 為 Kubernetes CLI 設(shè)置別名

這是一種非常簡單的技巧。操作 Kubernetes 過程中,我們可能需要頻繁輸入 kubectl,時間一長肯定會對輸入全名的繁瑣過程感到厭倦。雖然每次只需要輸入七個字母,但多次頻繁輸入總歸很麻煩。

此時的技巧是,為 kubectl 設(shè)置一個更簡單的別名,例如 k:

 
 
 
 
  1. $ alias k=kubectl 
  2. $ k get po 
  3. NAME    READY   STATUS    RESTARTS   AGE 
  4. mypod   1/1     Running   18         43h 

理想情況下,我們應(yīng)該將 k=kubectl 這樣的別名保存到 bash_profile 中,這樣每次打開終端后都將自動設(shè)置。

4. 在 Kubernetes 集群中運行 terminal

在訪問集群中的服務(wù)和 Pod 時,我們需要將其暴露出來,這樣才可以從公網(wǎng)訪問它們,或在本機和集群中運行的服務(wù)之間運行 Kube 代理或轉(zhuǎn)發(fā)端口。

然而有時候我們可能并不想暴露任何服務(wù)或轉(zhuǎn)發(fā)端口,而只需要運行某些非常簡單的 Curl 命令。為此我會通過 Bash profile 加載一個函數(shù),借此在集群內(nèi)部使用 radial/busyboxplus:curl 鏡像運行一個 Pod,通過這樣的方式就可以訪問終端,進而可以針對集群內(nèi)部的服務(wù)和 IP 運行 Curl 命令。我將這個函數(shù)稱之為 kbash,用法如下:

 
 
 
 
  1. $ kbash 
  2. If you don't see a command prompt, try pressing enter. 
  3. [ root@curl:/ ]$ 

在上述命令提示符下,我可以針對內(nèi)部的 Kubernetes DNS 名稱或 IP 地址運行 Curl 命令。如果需要退出,只需要運行 exit 即可;如果需要重新連接到該 Pod,則可運行 kbash 連接到現(xiàn)有 Pod。同時我還將這個函數(shù)定義到了自己的 dotfiles 中。

5. 快速打開 Grafana/Jaeger/Kiali

如果打算使用 Istio 服務(wù)網(wǎng)格(Service mesh),那么可能還會用到 Grafana/Jaeger/Kiali。訪問這些服務(wù)時必需首先獲得 Pod 名稱,隨后針對該 Pod 設(shè)置端口轉(zhuǎn)發(fā),最后才能打開瀏覽器訪問轉(zhuǎn)發(fā)后的地址。每次需要輸入的命令都很長:

 
 
 
 
  1. $ kubectl get pods --namespace istio-system -l "app=grafana" -o jsonpath="{.items[0].metadata.name}" 
  2. grafana-6fb9f8c5c7-hrcqp 
  3. $ kubectl --namespace istio-system port-forward grafana-6fb9f8c5c7-hrcqp 3000:3000 
  4. $ open http://localhost:3000 

而更簡單快捷的方法是為每個服務(wù)創(chuàng)建函數(shù)或別名。例如,我通過使用 Bash profile 加載的一個文件為 Grafana/Jaeger/Kiali 添加了如下設(shè)置:

 
 
 
 
  1. #!/bin/bash 
  2. export GRAFANA_POD=$(kubectl get pods --namespace istio-system -l "app=grafana" -o jsonpath="{.items[0].metadata.name}") 
  3. export JAEGER_POD=$(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 
  4. export KIALI_POD=$(kubectl -n istio-system get pod -l app=kiali -o jsonpath='{.items[0].metadata.name}') 
  5. alias grafana="kubectl --namespace istio-system port-forward $GRAFANA_POD 3000:3000 & open http://localhost:3000" 
  6. alias jaeger="kubectl --namespace istio-system port-forward $JAEGER_POD 16686:16686 & open http://localhost:16686" 
  7. alias kiali="kubectl --namespace istio-system port-forward $KIALI_POD 20001:20001 & open http://localhost:20001" 

這樣,如果需要打開 Jaeger,只需要運行 jaeger 就可以獲得 Pod 名稱,創(chuàng)建端口轉(zhuǎn)發(fā)并打開瀏覽器。

如果你在集群中運行了其他什么需要頻繁訪問的服務(wù),也可以用類似方式來設(shè)置別名。


當前標題:如何提升Kubernetes生產(chǎn)力?我有5個實用技巧分享給你
文章路徑:http://www.5511xx.com/article/ccispeg.html