【发布时间】:2018-04-12 12:30:40
【问题描述】:
我有一个带有 2 个从站的 Kubernetes 集群。我有 4 个 docker 容器,它们都使用一个 tomcat 映像并公开端口 8080 和 8443。当我现在将每个容器放入一个单独的 pod 时,我遇到了端口问题,因为我只有 2 个工作节点。 什么是我的方案的最佳策略?
当前错误消息是:1 PodToleratesNodeTaints,2 PodFitsHostPorts。
将所有容器放入一个 pod?这是我当前的设置(4 次)
kind: Deployment
apiVersion: apps/v1beta2
metadata:
name: myApp1
namespace: appNS
labels:
app: myApp1
spec:
replicas: 1
selector:
matchLabels:
app: myApp1
template:
metadata:
labels:
app: myApp1
spec:
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true
containers:
- image: myregistry:5000/myApp1:v1
name: myApp1
ports:
- name: http-port
containerPort: 8080
- name: https-port
containerPort: 8443
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 6
---
kind: Service
apiVersion: v1
metadata:
name: myApp1-srv
namespace: appNS
labels:
version: "v1"
app: "myApp1"
spec:
type: NodePort
selector:
app: "myApp1"
ports:
- protocol: TCP
name: http-port
port: 8080
- protocol: TCP
name: https-port
port: 8443
【问题讨论】:
-
服务暴露的端口可以不同,从而重新映射您的内部端口。这种端口风格的方法也有点针对 VM,因此您可能必须更改您的应用程序,或使用具有 IP 地址重新映射的负载均衡器才能使您的应用程序在此设置中工作。
标签: kubernetes