У меня есть приложение, работающее на Jetty Server и прослушивающее порт 8080. Я развернул его как контейнер. Приложение работает правильно, и если я выполню curl -v http://127.0.0.1: 8080 из модуля, я получу правильный ответ.
Мой модуль также имеет адрес. Давайте назовем это 10.1.2.3 (гипотетически). Если я пытаюсь выполнить curl -v http://10.1.2.3: 8080 , соединение закрывается.
Я попытался изменить адрес, на котором мое приложение запускается, на 10.1.2.3, и curl работает после того. Однако, я чувствую, что это побеждает цель контейнеризации, поскольку у меня не было бы доступа к этому IP заранее.
У меня также есть служба с балансировкой нагрузки, в которой я сопоставляю порт 33000 с моим портом службы 8080. Службе был назначен порт узла 34000. Поскольку он работает на моем локальном docker, моей целью было сделайте завиток -v http://localhost: 34000 и дойдите до моего приложения, но этого, очевидно, не происходит.
Может кто-нибудь помочь, пожалуйста, относительно того, что я делаю неправильно? Мои определения контейнера и службы приведены ниже:
resource.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-service-dev-pod1
labels:
app: myapp-service-dev
component: myapp-service-dev
spec:
selector:
matchLabels:
app: myapp-service-dev-pod1
replicas: 2
template:
metadata:
labels:
app: myapp-service-dev-pod1
component: myapp-service-dev
spec:
volumes:
- name: shared-dev-data
emptyDir: {}
containers:
- name: myapp-service-dev-pod1
image: docker/my-apps/mybuild_service:9
ports:
- containerPort: 8080
volumeMounts:
- name: shared-dev-data
mountPath: /opt/myapp/jetty/logs
service.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-service-dev-lb
labels:
app: myapp-service-dev
spec:
ports:
- port: 33000
protocol: TCP
name: http
targetPort: 8080
selector:
component: myapp-service-dev
type: LoadBalancer