k8s

Kubernetes

Services Types:

services types

NodePort

NodePort Range:30000-32767

service-definition.yml

apiVersion: v1
kind: Service
metadata:
   name: myapp-service
spec:
   type: NodePort
   ports:
    - targetPort: 80
      port: 80
      nodePort: 30008
   selector:
      app: myapp
      type: front-end

commands:

kubectl create -f service-definition.yml
kubectl get services
curl http://192.168.1.2:30008

Algorithm: Random

SessionAffinity: Yes

Multiple nodes and pods:

ClusterIP

service-definition.yml # copy app and type under selector to labels
apiVersion: v1
kind: Service
metadata:
    name: back-end
    
spce:
    type: ClusterIP
    ports:
      - targetPort: 80
        port: 80
        
    selector:
       app: myapp
       type: back-end

pod-definition.yml

apiVersion: v1
kind: Pod

metadata:
 name: myapp-app
 labels:
    app: myapp
    type: back-end 
spce:
  continers:
  - name: nginx-container
    image: nginx

Load Balancer

service-definition.yml
apiVersion: v1
kind: Service
metadata:
   name: myapp-service
spec:
   type: LoadBalancer
   ports:
    - targetPort: 80
      port: 80
      nodePort: 30008

Microservices Architecture

docker run -d --name=redis redis
docker run -d --name=db postgres:9.4
docker run -d --name=vote -p 5000:80 --link redis:redis voting-app
docker run -d --name=result -p 5001:80 --link db:db result-app
docker run -d --name=worker --link db:db --link redis:redis worker

Microservices application on kubernetes

Example voting app

Goals:

  1. Deploy Containers

  2. Enable Connectivity

  3. External Access

Steps:

  1. Deploy PODs

  2. Create Services(ClusterIP)

    1. redis

    2. db

  3. Create Services(NodePort)

    1. voting-app

    2. result-app

gitlab.com:stan.osaka/voting-app.git

Last updated

Was this helpful?