一個操作阿里雲K8S容器的簡易命令
阿新 • • 發佈:2020-12-22
技術標籤:Linuxlinuxshellk8skubectl
每次都是寫完成的K8S命令操作,比較繁鎖,就寫了一個小小的工具(注:要使用該工具,需要先在本地配置好阿里雲的K8S配置,並且該工具需要在Linux的環境化使用)簡化了操作,操作如下:
完整的Shell指令碼如下:
#!/bin/bash #功能說明:根據輸入的應用名稱,直接進入到其對應的K8S Docker容器中 #裝置要訪問環境的namespace,該值必須配置 namespace="你要操作的的namespace" if [ "$namespace" == "" ]; then echo "namespace必須配置." exit -1 fi #引數 #應用名稱,可以是部分名稱,該引數是必傳引數 app_name=$1 #要開啟的應用的第幾個節點 app_pod_index=$2 #判斷應用是否有輸入 if [ "$app_name" == "" ]; then echo -e "\n應用名稱沒有輸入,使用方法為:" echo "k8s_into_app.sh [(必填)應用名稱] [(可選,預設為1)應用的第幾個POD(值為1,2,3...)]" echo -e "可以檢視以下全部的應用列表:\n" kubectl get pods --namespace $namespace exit -1; fi #判斷要開啟的pod的是第幾個,值是1,2,3之類的,如果沒有輸入,則預設為第一個pod if [ "$app_pod_index" == "" ]; then app_pod_index=1 fi kubectl get pods --namespace $namespace | grep $app_name app_name_str=`kubectl get pods --namespace $namespace | grep $app_name|awk -F ' ' '{print $1}'` if [ "" == "$app_name_str" ]; then echo -e "\n根據輸入的應用名稱$app_name,找不到對應的名稱,可以檢視以下全部的應用列表:\n" kubectl get pods --namespace $namespace exit -1 fi #獲取POD的名稱i pod_name="" pod_index=0 OLD_IFS="$IFS" IFS=" " pod_name_arr=($app_name_str) IFS="$OLD_IFS" for s in ${pod_name_arr[@]} do pod_index=$(expr $pod_index + 1 ) if [ $pod_index -eq $app_pod_index ]; then pod_name=$s fi done #獲取應用名稱 container_name="" container_index=0 OLD_IFS="$IFS" IFS="-" container_name_arr=($pod_name) IFS="$OLD_IFS" for s in ${container_name_arr[@]} do container_index=$(expr $container_index + 1 ) done container_index=$(expr $container_index - 2 ) container_name=`echo $pod_name|cut -d "-" -f1-$container_index` echo -e "\n進入POD名為$pod_name、容器名為$container_name的K8S Docker容器中:\n" kubectl exec -it --namespace $namespace $pod_name -c $container_name -- bash