Я создал модуль с приведенным ниже определением yaml.
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: praveensripati/docker-demo:1.2
ports:
- containerPort: 3000
А теперь я открываю модуль, который создает службу.
kubectl expose pod myapp-pod --type=NodePort
Порт 3000 на контейнеревыставлен на порт 31728 на узлах.И я могу получить доступ к странице с помощью curl на порту 31728.
kubectl get service myapp-pod
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myapp-pod NodePort 10.107.254.254 <none> 3000:31728/TCP 5s
На этот раз я хотел представить службу не случайный порт, а на порту 80. И поэтому я указываю номер порта как80, используя --port.Детали обслуживания немного странные.Это говорит о том, что порт 80 на контейнере открыт для порта 31316 на узлах.Кроме того, я могу получить доступ к странице с помощью curl на произвольном порту (в данном случае 31316), а не на порту 80.
kubectl expose pod myapp-pod --type=NodePort --target-port=3000 --port=80
kubectl get service myapp-pod
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myapp-pod NodePort 10.105.123.73 <none> 80:31316/TCP 12s
Я не могу открыть службу на определенном порту и не наслучайный порт.Я попробовал несколько комбинаций и прочитал документацию по k8s, но безуспешно.
Как мне предоставить службу на определенном порту вместо случайного порта?