Kubernetes - 具有相同端口的pod的最佳策略?

时间:2018-04-12 12:30:41

标签: kubernetes

我有一个带有2个奴隶的Kubernetes集群。我有4个docker容器,它们都使用tomcat映像并暴露端口8080和8443.当我现在将每个容器放入一个单独的pod时,我遇到了端口问题,因为我只有2个工作节点。 什么是我的方案的最佳策略?

当前错误消息是:1 PodToleratesNodeTaints,2 PodFitsHostPorts。

将所有容器放入一个容器中?这是我目前的设置(第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

1 个答案:

答案 0 :(得分:1)

除非绝对必要,否则不应使用hostNetwork。如果没有主机网络,您可以让多个pod监听相同的端口号,因为每个pod都有自己的专用网络命名空间。