Kubernetes 1.13, CoreDNS - служба скручивания кластеров? - PullRequest
0 голосов
/ 25 декабря 2018

по умолчанию, в Kubernetes 1.13 установлен CoreDNS.Подскажите, пожалуйста, как сделать скручивание в кластере по имени службы?

[root@master ~]# kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.233.0.1   <none>        443/TCP   24h
[root@master ~]# kubectl get services --all-namespaces
NAMESPACE       NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                       AGE
kube-system     coredns                ClusterIP   10.233.0.3      <none>        53/UDP,53/TCP,9153/TCP                                        21h
tools           nexus-svc              NodePort    10.233.17.152   <none>        8081:31991/TCP,5000:31111/TCP,8083:31081/TCP,8082:31085/TCP   14h

[root@master ~]# kubectl describe services nexus-svc --namespace=tools
Name:                     nexus-svc
Namespace:                tools
Labels:                   tools=nexus
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"tools":"nexus"},"name":"nexus-svc","namespace":"tools"},"spec"...
Selector:                 tools=nexus
Type:                     NodePort
IP:                       10.233.17.152
Port:                     http  8081/TCP
.....

Так я получаю правильный ответ.

[root@master ~]# curl http://10.233.17.152:8081

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Nexus Repository Manager</title>
....

И так нет.

[root@master ~]# curl http://nexus-svc.tools.svc.cluster.local
curl: (6) Could not resolve host: nexus-svc.tools.svc.cluster.local; Unknown error
[root@master ~]# curl http://nexus-svc.tools.svc.cluster.local:8081
curl: (6) Could not resolve host: nexus-svc.tools.svc.cluster.local; Unknown error

Спасибо.

1 Ответ

0 голосов
/ 25 декабря 2018

coredns или kubedns предназначены для разрешения имени службы в его clusterIP (обычная служба) или соответствующем Pod IP (безголовая служба) внутри кластера kubernetes не снаружи.Вы пытаетесь свернуть имя службы на узле, а не внутри модуля, и, следовательно, он не может разрешить имя службы для его clusterIP.

Вы можете зайти внутрь модуля и попробовать выполнить следующее:

kubectl exec -it <pod_name> bash
nslookup nexus-svc.tools.svc.cluster.local

Он вернет вам IP-адрес кластера, и это означает, что coredns работает нормально.Если в вашем модуле есть утилита curl, вы также можете свернуть ее, используя имя службы (но только внутри кластера)

Если вы хотите получить доступ к службе извне кластера, эта служба уже обозначена как NodePort, поэтомуВы можете получить к нему доступ, используя:

 curl http://<node_ip>:31991

Надеюсь, это поможет.

...