Связь между модулями Kubernetes

У меня есть стручки с набором состояний. Когда я захожу внутрь одного из модулей и пытаюсь пропинговать его имя хоста. Оно работает. Но если я попытаюсь пропинговать имена хостов других модулей из текущих контейнеров, эти имена хостов не будут разрешены. У меня также есть безголовый сервис. Может кто-нибудь, пожалуйста, скажите мне минимум, что нужно сделать на уровне кластера или в yaml службы или набора состояний, чтобы обеспечить связь. Был бы полезен рабочий пример или ссылка на некоторые рабочие диаграммы, чтобы попробовать. Я могу пройти через это.

Услуга:

apiVersion: v1
kind: Service
metadata:
  name: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}"
  labels:
    app: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}"
{{ include "metadata.labels.standard" . | indent 4 }}    
spec:
  clusterIP: None
  selector:
   tier: backend

StatefulSet:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-myapp1"
  labels:
    app: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-myapp1"
    tier: backend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-myapp1"
  serviceName: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}"
  template:
    metadata:
      labels:
        app: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-myapp1"
        tier: backend
      volumes:
        - name: configmap-r
          configMap:
           name: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-configmap"
      imagePullSecrets:
        - name: {{ .Values.image.pullSecret }}
      containers:
        - name: "{{ .Chart.Name }}-{{ .Chart.AppVersion | replace "." "" }}-myapp1"
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
          volumeMounts:
            - name: configmap-r
              mountPath: /home/xyz/

Стручки:

pod/calico-kube-controllers-59fc8847c-vv9bt   1/1     Running            0          3h27m
pod/calico-node-4gktj                         1/1     Running            0          3h27m
pod/coredns-5c98db65d4-tctgk                  1/1     Running            13         63d
pod/coredns-5c98db65d4-v8gtv                  1/1     Running            13         63d
pod/etcd-minikube                             1/1     Running            2          63d
pod/kube-addon-manager-minikube               1/1     Running            2          63d
pod/kube-apiserver-minikube                   1/1     Running            0          15d
pod/kube-controller-manager-minikube          1/1     Running            6          63d
pod/kube-proxy-qc9nx                          1/1     Running            1          63d
pod/kube-scheduler-minikube                   1/1     Running            6          63d
pod/storage-provisioner                       1/1     Running            3          63d
pod/tiller-deploy-6b9c575bfc-z7dgs            1/1     Running            1          62d


NAME                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns               ClusterIP   xx.xx.xx.xx     <none>        53/UDP,53/TCP,9153/TCP   63d
service/tiller-deploy          ClusterIP   xx.xx.xx.xx     <none>        44134/TCP                62d

NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
daemonset.apps/calico-node   1         1         1       1            1           beta.kubernetes.io/os=linux   3h27m
daemonset.apps/kube-proxy    1         1         1       1            1           beta.kubernetes.io/os=linux   63d

NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/calico-kube-controllers   1/1     1            1           3h27m
deployment.apps/coredns                   2/2     2            2           63d
deployment.apps/tiller-deploy             1/1     1            1           62d

NAME                                                DESIRED   CURRENT   READY   AGE
replicaset.apps/calico-kube-controllers-59fc8847c   1         1         1       3h27m
replicaset.apps/coredns-5c98db65d4                  2         2         2       63d
replicaset.apps/tiller-deploy-6b9c575bfc            1         1         1       62d

`


comment
добавьте определение вашей услуги   -  person Efrat Levitan    schedule 07.11.2019
comment
@EfratLevitan добавил   -  person Nish    schedule 07.11.2019
comment
Не могли бы вы добавить свой YAML с полным набором состояний и как вы запрашиваете другие поды (используется вся команда)?   -  person Ezwig    schedule 07.11.2019
comment
@Ezwig добавил yaml. Вот так у меня есть другой такой же yaml для myapp2. Я захожу в myapp1 и пытаюсь запустить эту команду $ ping ‹имя хоста myapp2 pod›   -  person Nish    schedule 07.11.2019
comment
@Nish Вся команда, которую вы используете для запроса других модулей, тоже может содержать полезную информацию.   -  person Ezwig    schedule 07.11.2019
comment
@Ezwig Я изменил комментарий. Включите также команду   -  person Nish    schedule 07.11.2019
comment
Не могли бы вы попробовать проверить связь с вашим модулем, используя это доменное имя? ping (имя хоста). (headlessservicename) .default.svc.cluster.local   -  person Ezwig    schedule 07.11.2019
comment
Я тоже пробовал .. Не работает   -  person Nish    schedule 07.11.2019
comment
@Nish, не могли бы вы добавить к своему вопросу результат kubectl get all -n kube-system   -  person Ezwig    schedule 07.11.2019
comment
Добавлен вывод @Ezwig   -  person Nish    schedule 07.11.2019


Ответы (1)


Чтобы предоставить службу в кластере, используйте значение типа clusterIP. Вместо использования spec: clusterIP: None

Используйте это: Тип: ClusterIP

person Dashrath Mundkar    schedule 07.11.2019
comment
Ниш, не могли бы вы проверить и создать сервис, подобный предложенному Dashrath, и сообщить нам, сработало ли это? - person acid_fuji; 12.11.2019