Я создал собственный образ tcserver, открывающий порт 80, 8080 и 8443. В основном у вас есть apache, а внутри конфигурации у вас есть прокси-пропуск, чтобы перенаправить его на tcserver tomcat.
EXPOSE 80 8080 8443
После этого я создал kubernetes yaml для сборки модуля, открывающего только порт 80.
apiVersion: v1
kind: Pod
metadata:
name: tcserver
namespace: default
spec:
containers:
- name: tcserver
image: tcserver-test:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
И сервис вместе с этим.
apiVersion: v1
kind: Service
metadata:
name: tcserver-svc
labels:
app: tcserver
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
selector:
app: tcserver
Но проблема в том, что я не могу получить к нему доступ.
Если я захожу в модуль (kubectl exec -it tcserver -- /bin/bash
), я могу сделать curl -k -v http://localhost
, и он ответит.
Я считаю, что что-то не так с сервисом, но не знаю, что именно.
Любая помощь будет принята с благодарностью.
Изменение SVC
Как было предложено sfgroups, я добавил targetPort: 80
в svc, но все еще не работает.
Когда я пытаюсь скрутить IP, я получаю сообщение Нет маршрута к хосту
[root@testmaster tcserver]# curl -k -v http://172.30.62.162:30080/
* About to connect() to 172.30.62.162 port 30080 (#0)
* Trying 172.30.62.162...
* No route to host
* Failed connect to 172.30.62.162:30080; No route to host
* Closing connection 0
curl: (7) Failed connect to 172.30.62.162:30080; No route to host
Это описание из svc:
[root@testmaster tcserver]# kubectl describe svc tcserver-svc
Name: tcserver-svc
Namespace: default
Labels: app=tcserver
Annotations: <none>
Selector: app=tcserver
Type: NodePort
IP: 172.30.62.162
Port: <unset> 80/TCP
NodePort: <unset> 30080/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>
app: tcserver
, но я не вижу метки в определении Pod. - person   schedule 11.01.2019