Skip to main content

kubernetes services

service
is an object just like pods, replica set or deployments that we worked with before, one of its use case it to listen to a port on the node and forward request on that port to a port on the pod.

service types:
1. node port
makes internal pod accessible on a port on the node
2. cluster ip
service creates a virtual ip inside the cluster to enable communication between different services, such as frontend servers to the backend servers
3. load balancer


How to create a service
it will be just like we created deployment replicaset

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

ClusterIP:

A full stack application has a number of different kind of pods running, you may have a frontend pod, web server etc

These all need to communicate with each other
How to establish a connection between them. Since the pods can go down and new ones can spin up any time we just cannot rely on the IP. Also since there are many pods having these things running where to go to and who makes that decision.

Solution:
A service created for backend pods will help group backend pods and will group all backend pods together. The requests are forwards to one of the pods, under the service randomly.
This is what enables us to create and deploy a microservice based application on a kubernetes cluster.

The default type of service is ClusterIP.

targetport: is the port where backend is exposed
port: is the port where service is exposed, link service to a set of pods we use selector.










Comments

Popular posts from this blog

Gui logging in node js and python

For node.js Use  frontail for logging https://www.npmjs.com/package/frontail For Python -- use Cutelog https://pypi.org/project/cutelog/ In NodeJs for using frontail we need to use log the logs in a file for logging logs to file , we will use winston Using winston https://www.npmjs.com/package/winston Eg. of using winstonconst { createLogger, format, transports } = require('winston'); const { combine, timestamp, label, prettyPrint } = format; const logger = createLogger({   level: 'info',   format: format.json(),   transports: [     //     // - Write to all logs with level `info` and below to `combined.log`      // - Write all logs error (and below) to `error.log`.     //     new transports.File({ filename: 'error.log', level: 'error' }),     new transports.File({ filename: 'combined.log' })   ] }); logger.log({   level: 'info',   message: 'What time is...

opening multiple ports tunnels ngrok in ubuntu

Location for the config yml file /home/example/.ngrok2/ngrok.yml content of config file authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p tunnels: app-foo: addr: 80 proto: http host_header: app-foo.dev app-bar: addr: 80 proto: http host_header: app-bar.dev how to start ngrok with considering the config file: ngrok start --all

rename field in elastic Search

https://qiita.com/tkprof/items/e50368eb1473497a16d0 How to Rename an Elasticsearch field from columns: - {name: xxx, type: double} to columns: - {name: yyy, type: double} Pipeline API and reindex create a new Pipeline API : Rename Processor PUT _ingest/pipeline/pipeline_rename_xxx { "description" : "rename xxx", "processors" : [ { "rename": { "field": "xxx", "target_field": "yyy" } } ] } { "acknowledged": true } then reindex POST _reindex { "source": { "index": "source" }, "dest": { "index": "dest", "pipeline": "pipeline_rename_xxx" } }