介绍使用Kubernetes(K8s)部署Keptn

480 阅读2分钟

在这篇博客中,我们将快速浏览在Kubernetes的复制控制器的帮助下部署Keptn的步骤!!所以,让我们深入了解一下 🙂

什么是Keptn?

Keptn是一个开源的控制平面,用于构建云原生的、行业驱动的持续交付系统。根据Dynatrace的说法,Keptn增强了任何标准的Kubernetes集群,以支持基于自动化质量门和自愈运营工作流程的交付。

使用K8s部署Keptn

现在让我们在Kubernetes中部署Keptn。

前提条件

要在Kubernetes中部署Keptn,我们需要以下条件: --

  • 关于Kubernetes和复制控制器的基本知识。
  • 关于yaml文件的基本知识。

代码块

在你的yaml文件中复制复制控制器的代码,并将其保存为keptn-rc.yaml

apiVersion: v1

kind: ReplicationController

metadata:

#contains 2 things object name and label

  name: keptn-rc

spec:

#contains no. of replicas and pods spec

  replicas: 3

  selector:

    app: keptn-app
  
  template:

  #pods spec

    metadata:

      name: keptn-pod

      labels:

        app: keptn-app
    
    spec:

      containers:

      - name: keptn-container

        image: gardnera/thekindkeptn:0.0.15

        ports:

        - containerPort: 80

这里我们要创建一个复制控制器,规格如下。

  • 复制控制器的元数据:keptn-rc
  • keptn pods的复制:3
  • 容器名称:keptn-container
  • Keptn图像: gardnera/thekindkeptn:0.0.15
  • 运行的端口:80

默认情况下,只有3个Keptn的pod会在节点上运行。要增加或减少pods,请使用以下命令。

代码实现

- Deploy keptn rc with (default 3 replicas) following command.

kubectl create -f keptn-rc.yaml


- Get output of running pods using this command.

kubectl get po -o wide


- Scale Up / Scale Down the pods using this command.

kubectl scale rc keptn-rc --replicas=5

kubectl scale rc keptn-rc --replicas=1


- Delete keptn-rc after deployment

kubectl delete -f keptn-rc.yaml

趣味部分 🙂

如果你不想执行上述步骤,我为你制作了一个脚本,可以做到这一点 🙂

bash方式执行main.sh即可。

echo "Please enter the number of pods you want to deploy for Keptn"

read count

echo $count

#Start keptn: with 3 nodes

kubectl create -f keptn-rc.yaml && kubectl scale rc keptn-rc --

replicas=$count

#Check output:

kubectl get po -o wide

echo 

while true; do    

    read -p "Do you want to scalup Pods? [y for Yes  ;  n for No  ;  q  for 

Quit] " yn

    echo ""

    case $yn in

        [Yy]* ) echo "Enter number of pods to scale up" 

                read scale_count

        echo "Pods scaled up to $scale_count" && kubectl scale rc keptn-rc --

replicas=$scale_count ; break;;

        [Nn]* ) break ;;

        [Qq]* ) exit 0;;

        * ) echo "Please provide a yes or no answer."

    esac

done

echo

while true; do    

    read -p "Do you want to scaldown Pods? [y for Yes  ;  n for No  ;  q  for 

Quit] " yn

    echo ""

    case $yn in

        [Yy]* ) echo "Enter number of pods to scale down" 

                read scale_count

        echo "Pods scaled down to $scale_count" && kubectl scale rc keptn-rc 

--replicas=$scale_count ; break;;

        [Nn]* ) break ;;

        [Qq]* ) exit 0;;

        * ) echo "Please provide a yes or no answer."

    esac

done

echo 

while true; do    

    read -p "Do you want to delete this Deployment? [y for Yes  ;  n for No  

;  q  for Quit] " yn

    echo ""

    case $yn in

        [Yy]* ) kubectl delete -f keptn-rc.yaml ; break;;

        [Nn]* ) break ;;

        [Qq]* ) exit 0;;

        * ) echo "Please provide a yes or no answer."

    esac

done

输出

用上述命令运行并扩大Keptn pods的规模。

扩大pods规模

用上述命令运行并缩小Keptn pods的规模。

缩小豆荚规模

总结

在这篇博客中,我试图介绍使用Kubernetes(K8s)部署Keptn。我已经尽力为你提供了源代码,以及为你完成所有步骤的脚本。