【问题标题】:task.Container moving from docker to kubernetestask.Container 从 docker 迁移到 kubernetes
【发布时间】:2019-08-27 07:31:30
【问题描述】:
我正在尝试将 docker 容器引入 Kubernetes。在 docker 中,您可以向 dns 询问:
host tasks.containername
结果是来自运行具有此名称的容器的所有内部 IP。
我在 kubernetes 上做同样的事情,使用无头服务。我可以的
host pod-name
结果也是来自 pod 的所有内部 IP。
到目前为止一切顺利,但有很多“run.sh”脚本使用“task.XXX”查询。有人知道如何在不编辑所有 run.sh 脚本的情况下解决此问题吗?
也许在 coredns 中有一些东西,带有映射。
最好的,谢谢你
【问题讨论】:
标签:
docker
kubernetes
amazon-eks
coredns
【解决方案1】:
我同意编辑脚本是最明智的解决方案,但这里是在 kubernetes 中编辑 coredns 的方法。
kubectl edit configmap coredns -n kube-system
然后添加如下重写配置。
rewrite name tasks.containername.default.svc.cluster.local containername.default.svc.cluster.local
例如
.:53 {
errors
log
health
rewrite name tasks.containername.default.svc.cluster.local containername.default.svc.cluster.local
kubernetes cluster.local 10.0.0.0/24
proxy . /etc/resolv.conf
cache 30
}
然后重新加载coredns如下
kubectl exec -n kube-system coredns-xxxxxxx -- kill -SIGUSR1 1
【解决方案2】:
我认为编辑它们是最明智的解决方案。
为了清楚起见,不是host pod-name,而是host headless-service