Я пытаюсь следовать примеру это сообщение в блоге, чтобы снабдить мои модули вышестоящими DNS-серверами.
Я создал новый кластер GKE в us-east1-d (где версия 1.6.0 доступна согласно записи от 4 апреля здесь).
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37", GitTreeState:"clean", BuildDate:"2017-03-28T16:36:33Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37", GitTreeState:"clean", BuildDate:"2017-03-28T16:24:30Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Затем я определил ConfigMap в следующем файле YAML, kube-dns-cm.yml:
apiVersion: v1
kind: ConfigMap
metadata:
name: kube-dns
namespace: kube-system
data:
upstreamNameservers: |
["1.2.3.4"]
Когда я пытаюсь создать ConfigMap, мне говорят, что он уже существует:
$ kubectl create -f kube-dns-cm.yml
Error from server (AlreadyExists): error when creating "kube-dns-cm.yml": configmaps "kube-dns" already exists
Я попытался удалить существующий ConfigMap и заменить его своим, но когда я впоследствии создал модули, они, похоже, не вступили в силу (имена не разрешаются, как я надеялся). Есть ли в истории что-то большее, чем описано в сообщении в блоге (например, перезапуск службы kube-dns или модулей)? Спасибо!
РЕДАКТИРОВАТЬ: удаление и воссоздание ConfigMap на самом деле действительно работает, но не совсем так, как я надеялся. Мой реестр докеров находится в частной (корпоративной) сети, и для разрешения имени реестра требуются вышестоящие серверы имен. Поэтому я не могу использовать DNS-имя реестра в моем файле pod yaml, но модули, созданные из этого файла yaml, будут иметь желаемое разрешение DNS (после замены ConfigMap)