Kubernetes — конфигурация службы работает, но не отображается

У меня есть приложение opensearch, которое я хочу открыть через службу, чтобы оно могло взаимодействовать с полученным мной приложением opensearch-dashboard. когда я открываю оболочку в модуле, я вижу, что сервер opensearch работает правильно.

когда я бегу, чтобы извлечь URL:

      cat /etc/hosts

Я получил:

      opensearch-master-headless-0.opensearch-master-headless.search.svc.cluster.local

если я запускаю это в том же модуле, я получаю ответ 200.:


если я запускаю его из модуля панели инструментов в том же пространстве имен, он говорит, что он не разрешен:

      curl -XGET http://opensearch-master-headless-0.opensearch-master-headless.search.svc.cluster.local:9200 -u 'admin:admin' --insecure

мой сервис.yml

      ---
kind: Service
apiVersion: v1
metadata:
  name: {{ .Values.global.appName }} --- evaluates to opensearch
  namespace: {{ .Values.global.namespace }} --- evaluates to search
spec:
  type: ClusterIP
  clusterIP: None
  publishNotReadyAddresses: true
  ports:
    - name: "http"
      protocol: TCP
      port: 9200
    - name: "transport"
      protocol: TCP
      port: 9300
---

Но, если я использую IP-адрес модуля opensearch:

      curl -XGET http://<IP-ADDRESS>:9200 -u 'admin:admin' --inse

cure

это работает из модуля opensearch

  • Я использую argocd для развертывания, когда я развертываю приложение opensearch, оно не вызывает никаких ошибок в моей конфигурации службы.

1 ответ

Вы можете получить доступ через тип NodePortиз Service

      ---
kind: Service
apiVersion: v1
metadata:
  name: {{ .Values.global.appName }} --- evaluates to opensearch
  namespace: {{ .Values.global.namespace }} --- evaluates to search
spec:
  type: NodePort
  clusterIP: None
  publishNotReadyAddresses: true
  ports:
    - name: "http"
      protocol: TCP
      port: 9200
      nodePort: 30920
    - name: "transport"
      protocol: TCP
      port: 9300
      nodePort: 30930
---

Затем звоните по IP узла k8s
(получите IP узла k8s командой kubectl get node -o wide- в поле INTERNAL-IP)

curl -XGET http://<INTERNAL-IP>:30920 -u 'admin:admin' --insecure

Другие вопросы по тегам