一个操作阿里云K8S容器的简易命令

每次都是写完成的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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值