Kubernetes - Best strategy for pods with same port?

4/12/2018

I have a Kubernetes cluster with 2 Slaves. I have 4 docker containers which all use a tomcat image and expose port 8080 and 8443. When I now put each container into a separate pod I get an issue with the ports since I only have 2 worker nodes. What would be the best strategy for my scenario?

Current error message is: 1 PodToleratesNodeTaints, 2 PodFitsHostPorts.

Put all containers into one pod? This is my current setup (times 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
-- Joschi
kubernetes

1 Answer

4/12/2018

You should not use hostNetwork unless absolutely necessary. Without host network you can have multiple pods listening on the same port number as each will have its own, dedicated network namespace.

-- Radek 'Goblin' Pieczonka
Source: StackOverflow