1
votes

Battling with Kubernetes manifest on Azure. I have a simple api app running on port 443 (https). I simply want to run and replicate this app 3 times within a kubernetes cluster with a load balancer.

Kubernetes cluster:

Kubernetes cluster figure

My manifest file:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: apiApp
spec:
  replicas: 3
  template:
   metadata:
   labels:
   app: apiApp
spec:
  containers:
  - name: apiApp
    image: {image name on Registry}
    ports:
    - containerPort: 443
      hostPort: 443
---
apiVersion: v1
kind: Service
metadata:
  name: apiApp
spec:
  type: LoadBalancer
  ports:
  - name: https
    port: 443
    targetPort: 443
  selector:
    app: apiApp

In the above manifest the loadbalancer does not seem to find the app on port 443 within the container.

1) How can I create this manifest to link load balancer to port 443 of the containers and also expose the load balancer to the outside world on port 443.

2)How would manifest look like in multi cluster environment (same conditions as above)

1

1 Answers

1
votes

For your issue, I did the test with the load balancer follow the document Deploy an Azure Kubernetes Service (AKS) cluster.

This example only has one pod, so I scale up the pod in to 3 with the command kubectl scale --replicas=3 deployment/azure-vote-front. The yaml file about scales and Load Balancer will like the screenshot below.

enter image description here enter image description here

When the Cluster finish, I can access the service from Internet via Web Browse. And you can use the command az aks browse to go into the Kubernets dashboard to get a overview of the Kubernets Cluster.

Update

The Azure Kubernets Cluster is just a resource group like below and so as the load balancer: enter image description here