Определение 2 портов в deploy.yaml в Kubernetes
У меня есть изображение докера от я делаю
docker run --name test -h test -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:install
Я пытаюсь поместить в файл развертывания kubernetes, и у меня есть это:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: websphere
spec:
replicas: 1
template:
metadata:
labels:
app: websphere
spec:
containers:
- name: websphere
image: ibmcom/websphere-traditional:install
ports:
- containerPort: 9443
resources:
requests:
memory: 500Mi
cpu: 0.5
limits:
memory: 500Mi
cpu: 0.5
imagePullPolicy: Always
мой сервис
apiVersion: v1
kind: Service
metadata:
name: websphere
labels:
app: websphere
spec:
type: NodePort #Exposes the service as a node ports
ports:
- port: 9443
protocol: TCP
targetPort: 9443
selector:
app: websphere
Могу ли я получить руководство о том, как сопоставить 2 порта в моем файле развертывания?
1 ответ
Вы можете добавить столько портов, сколько вам нужно.
Здесь твой deployment.yml
:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: websphere
spec:
replicas: 1
template:
metadata:
labels:
app: websphere
spec:
containers:
- name: websphere
image: ibmcom/websphere-traditional:install
ports:
- containerPort: 9043
- containerPort: 9443
resources:
requests:
memory: 500Mi
cpu: 0.5
limits:
memory: 500Mi
cpu: 0.5
imagePullPolicy: IfNotPresent
Здесь твой service.yml
:
apiVersion: v1
kind: Service
metadata:
name: websphere
labels:
app: websphere
spec:
type: NodePort #Exposes the service as a node ports
ports:
- port: 9043
name: hello
protocol: TCP
targetPort: 9043
nodePort: 30043
- port: 9443
name: privet
protocol: TCP
targetPort: 9443
nodePort: 30443
selector:
app: websphere
Проверь свои куберне api-server
Конфигурация, каков диапазон для nodePorts (обычно 30000-32767
, но это настраивается).
РЕДАКТИРОВАТЬ
Если я удаляю из deploy.yml resources
раздел начинается правильно (примерно через 5 минут). Вот фрагмент из журналов:
[10.09.18:08:06:004 UTC] 00000051 webcontainer I com.ibm.ws.webcontainer.VirtualHostImpl addWebApplication SRVE0250I: веб-приложение по умолчанию для веб-модуля привязано к default_host [ : 9080,: 80,: 9443,: 506 0 ,: 5061,: 443].
При подключении возникают проблемы (я использую вход с traefik) из-за сертификатов (я полагаю):
[9/10/18 10: 15: 08: 413 UTC] 000000a4 SSLHandshakeE E SSLC0008E: Невозможно инициализировать соединение SSL. Отказано в несанкционированном доступе или истек срок действия настроек безопасности. Исключение составляет javax.net.ssl.SSLException: нераспознанное сообщение SSL, соединение в виде открытого текста?
Чтобы решить это (я не пошел дальше), это может помочь: SSLHandshakeE E SSLC0008E: Невозможно инициализировать соединение SSL. Отказано в несанкционированном доступе или истек срок действия настроек безопасности
Попытка связаться с port-forward
:
и используя браузер для подключения, я попадаю на эту страницу:
В kubernetes вы можете определить свои порты с помощью метки #port. Эта метка входит в конфигурацию портов в вашем развертывании. В зависимости от конфигурации вы можете просто определить любое количество портов, которое хотите. В следующем примере показано, как определить два порта.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9376
- name: https
protocol: TCP
port: 443
targetPort: 9377