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