AWS ECS基本容器等效于kubernetes

时间:2017-07-28 07:05:02

标签: kubernetes amazon-ecs

我们正在安排Atlassian Bamboo工作到ECS,并期待在kubernetes上做同样的事情。我们根据作业需要(数据库,docker守护程序,selenium,...)提供具有1-n辅助服务容器的Bamboo代理容器。在ECS中,我们将主代理容器标记为“必需”,当代理完成工作并退出时,整个ECS任务将崩溃,退出所有其他端容器。

我们如何在Kubernetes做同样的事情?似乎我们唯一的选择是定期戳群集并检查带有竹子代理容器的吊舱,并从外面终止吊舱。当其中一个容器死亡时,有没有办法让pod自动崩溃/终止?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

一种方法似乎是使用容器的入口点脚本中的陷阱功能从内部杀死pod。 它需要对serviceaccount的权限以及对kube集群API执行http请求的能力。

function kube_cleanup {
    # if running in kube only.
    # assumes KUBE_POD_NAME is passed to this container.
    if [ -f '/var/run/secrets/kubernetes.io/serviceaccount/namespace' ]; then
        namespace=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
        token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
        kube_url="https://kubernetes.default/api/v1/namespaces/$namespace/pods/$KUBE_POD_NAME"
        curl -v --tlsv1.2 --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $token" -X "DELETE" $kube_url
    fi
}
trap kube_cleanup EXIT