Kubeconfig file and YAML deployment file

Sidharth ShuklaSidharth Shukla
3 min read

kubeconfig file

A kubeconfig file is a YAML file that contains information about Kubernetes clusters, users, and authentication mechanisms. The kubectl command-line tool uses kubeconfig files to find the information it needs to choose a cluster and communicate with the API server of a cluster.

A kubeconfig file consist of basically following section:-

1. apiVersion:- The Kubernetes API version that the kubeconfig file is compatible with.
2. clusters:- A list of Kubernetes clusters. Each cluster has a name and a server URL.
3. users:- A list of Kubernetes users. Each user has a name and a authentication mechanism.
4.contexts:- A list of contexts. Each context has a cluster, a user, and a namespace.

Switching Contexts:
You can switch between different Kubernetes clusters or contexts using the "kubectl config use-context" command.
Contexts are useful when working with multiple clusters or environments.

Creating and Managing Kubeconfig Files:

  • Kubeconfig files can be created manually or generated by cloud providers (e.g., AWS, GKE) when configuring kubectl.

  • To create or modify a kubeconfig file manually, you can edit it directly or use the kubectl config command.

Example of kubeconfig file:-

apiVersion: v1
clusters:
- cluster:
    server: https://localhost:8080
    name: minikube
users:
- name: minikube
  user:
    client-certificate: /path/to/client-certificate.pem
    client-key: /path/to/client-key.pem
contexts:
- context:
    cluster: minikube
    user: minikube
    namespace: default
  name: minikube
current-context: minikube

Yaml deployment file

A YAML deployment file is a YAML file that describes a desired state for a Kubernetes deployment. The deployment controller uses the deployment file to create and manage the deployment.

Key deployment feature

  • Replica Sets: Deployments create and manage Replica Sets, which maintain the desired number of pod replicas.

  • Rolling Updates: Deployments support rolling updates, allowing you to update application versions without downtime.

  • Rollback: If an update fails, you can roll back to the previous deployment revision.

  • Scaling: Deployments can scale applications horizontally by increasing or decreasing the number of replicas.

  • Self-Healing: If a pod fails, Deployments automatically replace it to maintain the desired state

Example of deployment yaml file

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app-container
          image: my-app-image:1.0

Updating Deployments

  • To update a Deployment, you can change the container image, environment variables, or other attributes in the Deployment's YAML file.

  • Kubernetes will perform rolling updates to apply changes gradually.

To deploy an application or service with a YAML deployment file, you can use the following kubectl command:

kubectl apply -f deployment.yaml

This command will create a deployment based on the deployment file. The deployment controller will then create the necessary pods and other resources to bring the deployment up to the desired state.

Conclusion:-

Kubeconfig files and YAML deployment files are essential tools for managing Kubernetes clusters and deployments. By understanding the basic structure of these files, you can be more effective in using Kubernetes to deploy and manage your applications and services.

If you like that content then please like and share....that blog is not much practical oriental, basically it is for developing the basic understanding regarding kubeconfig file and yaml deployment file.

0
Subscribe to my newsletter

Read articles from Sidharth Shukla directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sidharth Shukla
Sidharth Shukla

I am full stack web developer, currently i am learning devops and cloud technology.