Kubernetes Configuration (kubectl config)

Three ways to setup kube config :

  • –kubeconfig flag
  • $KUBECONFIG environment variable
  • ${HOME}/.kube/config

Kube Config file look like below

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1EUXhOekEwTlRJME9Gb1hEVE16TURReE5EQTBOVEkwT0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTFcvCisrRm5majlOQkJGdW11NlNtUndpQTNFMmhzMGNDZU9yL0h0UTRkUWZHbS8yWkluYnJnT09BNC9rYnZJN3M3aUQKVWI3NERsRW0wc3g0V1FiYVVFcmlFNzZaK1VOdzdtVGR4MkpMUEhPOVREOU5EU1greHV0bjBwaU9DYWVBR2gwaApGSzZpNGh6UDJOdTVCTDJVaTYxNUtZNnFNSGNQdjkxbkI4dWZ4dDhQMFl0d0VUdlFPR1k5V1N6NDJtei9UMUlQCkF5dHpzVU81cTNXNkZFOEZrcDhEQWk4aGtNNmloM01JQlZCaW96bW5DSUVUVk15Qy9BNVg0ZjRUM05FMXdxS0wKdzZjcWhMRHZJZHdIZFBWTXZkbTk1UGxsTjRyRFRSazIwL1VWTXdXN1JvNFoxMU1selBqNWtpc1A3U1dyWkRnQQpPQ3BTRlo4TnNPRUFVMzdCZkNrQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZBUlpwUVFIWmZhay8rRENEWENNTWdQVWtLTEVNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSEtRamJ5eVJJRjU3SGw0Vmp5TwpTU1FvYWtmR2RMMWRiUWFwTURxVVowUTZ1dzlYQVJrRi8yY3RFZmt0YXBRc21Jc2tvYUhqVWxiWlpTdEJoTjdjCmdiTnUxVTFXRmlpQkFhUHhYMmtHZEIvY3cwYkg4c0F5WnJiMEdHMVYreEhoQ0c1WVhwdlBRVTZad1FBcGUzZmgKTkxISHdnZUhxNTRTamU0SmFYMlVkSkxNb0I2T05DWjU0S2lxam1LNGkrRERWS0ZpRUEzN2M5U2VXcFJUM01BYQpIdjJDTG16cEdKZ2dwa3pZMVBURzNrdmtTSU14Nm1Ub3l0S0tWYzRVTTZuRzZxVHVDZVV5MHJqZkorMDV4TUVvCnNXdkowVFJ3Y0owUFczTFdPZE5ITVRKZ01aem5ldWhUWHltTVFvRk9obWtoU2lyZTMrbGRSMlVRYlJuUjhEZ0QKTXM4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    server: https://kubernetes.docker.internal:6443
  name: docker-desktop
contexts:
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURRakNDQWlxZ0F3SUJBZ0lJZG4zVTYrZXNIV0l3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBME1UY3dORFV5TkRoYUZ3MHlOREEwTWpJd05qQXhNVEZhTURZeApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sc3dHUVlEVlFRREV4SmtiMk5yWlhJdFptOXlMV1JsCmMydDBiM0F3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ3lFOGg5eEU3K3RzV1YKaXE0Q1IxQkoxUTkzUklmbmpyQzNtWWlVOG5qZ1VpUnFVRlNqdHM3NU9EM21KR1JDcElHNGVnU2Ezd0d5MU9LRQoyaTJpeEpQWmg2azU5K0NNd0orRmxJbTR6Q3plelZuSHIyV0tRaTVZWDNNMUhsRDJMZGRHYXJldkNzN1VWVzJRCkZvdjJ6SW5pcTZFSUtBRHAxUnh0ZXVJNDV4WnNMbEtJT2E4QUxqMmU1MnVmQ25xQTRVUG82UFdFaHNjQUh4Y3oKZUhiajg2NE03MFJZQllvNUZuQ3pDSmE5U0IxcHBadzBtKzBvRTNqQmozVUJoS2pWVWpVQkkyQkxBZlBoVFFHcwpGelpBbG53a2xqZWM5N2w1QTB3NnczTjRNalAwTVp3UDJkZEQ3emhwMXlPTlo3L0RWNkZ6VnVZZFAxQVEvMExpCmZwbHpNSy96QWdNQkFBR2pkVEJ6TUE0R0ExVWREd0VCL3dRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUYKQlFjREFqQU1CZ05WSFJNQkFmOEVBakFBTUI4R0ExVWRJd1FZTUJhQUZBUlpwUVFIWmZhay8rRENEWENNTWdQVQprS0xFTUIwR0ExVWRFUVFXTUJTQ0VtUnZZMnRsY2kxbWIzSXRaR1Z6YTNSdmNEQU5CZ2txaGtpRzl3MEJBUXNGCkFBT0NBUUVBcHA4TkFVQ1U3TWZtZVVHZTgwUFEwSWpZQmJBNG52VG9nQWpjaVZXK3pwMWJnK2kraXQ4WDY1ZFEKVEgwc01vMlprL3FUZmpLOGhlSisvOVpXTTYwMmNsWmFiS2lRc04zTnRyQkF1VWR3ME5hWVVubUdIOHh3bmdnTApaci91TEtuSmo2N0lFYk1LQ3krVGpEblJzeURCUlIwemZEOHJUeFRiaFI5endTamNjbE0yRk5xK0l1elZOYk5NCmpveCtnb1V3a2l2K25XNjFSZ0xLblFmdldqSGRoUmQwSHhBZFJ4dUpkaVhEVWUwOCtvTERFYmdsL3o1NkdxVUEKQmdQaEZvS2lFZmdqM0xicFJrcVdyb1dVaUwwTmFHakwzaGpOYUN1WDR6bEd6VG5rUllxZmFGVzRGQmt3UmNkdAppcW05clM0UFp4djZuYUNVRDEwbGc0eWpQRVMrdGc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBc2hQSWZjUk8vcmJGbFlxdUFrZFFTZFVQZDBTSDU0Nnd0NW1JbFBKNDRGSWthbEJVCm83Yk8rVGc5NWlSa1FxU0J1SG9FbXQ4QnN0VGloTm90b3NTVDJZZXBPZmZnak1DZmhaU0p1TXdzM3MxWng2OWwKaWtJdVdGOXpOUjVROWkzWFJtcTNyd3JPMUZWdGtCYUw5c3lKNHF1aENDZ0E2ZFVjYlhyaU9PY1diQzVTaURtdgpBQzQ5bnVkcm53cDZnT0ZENk9qMWhJYkhBQjhYTTNoMjQvT3VETzlFV0FXS09SWndzd2lXdlVnZGFhV2NOSnZ0CktCTjR3WTkxQVlTbzFWSTFBU05nU3dIejRVMEJyQmMyUUpaOEpKWTNuUGU1ZVFOTU9zTnplREl6OURHY0Q5blgKUSs4NGFkY2pqV2UvdzFlaGMxYm1IVDlRRVA5QzRuNlpjekN2OHdJREFRQUJBb0lCQUV4b1lLWldETzhOelVtVQo3NFRheElCcGd2RlIzbDVrd3o2RUNpNmV1MjdFMEFzdDNLTkNWUnhxSFdVYVNFcXYrMWtFUWVXUnVsRFpOemg1CnhRc0ovY1pnaHlQd1Q5RVU5VjJEbG5STVp4UlNXQ3R0L3N1TUNnYXhMZVdrMUdoTTB3bkwwSFN5MW53VkM2Vy8KaHQ2bWRLTmxzUHFtNzMxbGk0VU9MUEx0ZEptRnJ2ek9HU1gzNDFmRUxVL2w3U1hEOSttc1hXdHlPd1YybURZRgpySHNVZmEzQTF3SlNDMGhZUGdUL1dySTc5T21yc3ppWWZLekF3dGtKN0hyU2szNzJ3bDJvSWcxcXBHdEZjTE5hCnF2RWIreUxqNkszcjdXYTYrYmtBM29MYiswb2xkY2NMb05USHA2Sk5iQU9TVzFIdVgwVldiNDZ6Y3dzU2EvaWsKdUJ3SXIwRUNnWUVBeG51UXdrOHNnNnR1OEhDWnZaNkxoczhLMHJrblc0WnA5T3RuZjVKRGFaWjc3aXl3UXdGcAoxRVBzM3RhUWVGSDlGL09ZTmZnQ1ViQk5tUDVaV04yS0RLY2U3WC81a3g0MXRjdUEyTlpuMWRLbmF4MkthM2pZCkFCQ1FWVk1kd0pYT2dvODByQ2d2eXo1dHdVZGdBZ2doOWFGT0t1KzRQL1F3UkM1Q2pwRU4xb2NDZ1lFQTVhNXgKaE43aGMwN3pUT1dVaGt6Z1NLcUxIZjFEMUxmMmpweVJ0VUU0VHU0TlZJbkk5SWhwVkpOQmw5ZGN3b21oL1hwZgpFZlhBd0Vsd2E3eXRlZWVGSkNqNnc3cjNuRFlBUHVmOFJVWCt3dUZGdWVqRlprMUxIdFB4eXdMVHBlNGw3Q2twCnBncitCVXVPaXZvVkp1N0NKcFJMWmtpRk9lNUs5aWVxT29IK0NqVUNnWUVBdEVzTC9LVkVyem9yWlBjemdCNGoKYWNwcWIyM0d4WW04ZDhEWjIvVDFqVlVuci9zaUJVdWtZUzl1WENFVlRHWlZlOHRIYVVhbWZLT2thU1FwN3VJVwpnMVhQYnpkL2NsYlB2UnBsS1JMaGNVYVAwMm9iRVhMTTZvb2hRWkJsaDBuTk02VjMyQ1lNL0JieVJjNWE5SjJFCms0WDU1bUNvd2xkQy9MdjBzMklwNnNNQ2dZQS9STWRtaDVMcEZaVjEyRVFLbnNDbG83MEF2TlJqazIxcXFYeUYKeG5xQlc1ZjJjcUlWb2tJSmx5clpiZXpTZGVGV2xzLzdmWXZrTEJhNHh0ZXVuZlVTR2V2QjRRMzJUUFhTWGtzaQp0ZjVRcG9kemg4aGd2dWZ6alFTdEhKRTZ3eGhWTHAyWGJLMit2YXA5WkJoUmlqR1hPUUJ3STRmM2hrbkY5dlV3CmVzQ0ZCUUtCZ0RBV01kSTRrL3lBMVNRVGwwSTlMbzNsbzlxTXNvMldIQktjSDhWTjB4SVN2Q004OVVPa29RbjgKZFpOMzlhY3c0Zkt1YTBJRjg3bXZ6Q01pbWIzVFlmSnE3QzlwTlBGemRYdEpZcWpaSTd5ZTRwbnZrdHRHbzlZbQpEWjEyTnoxcWx1dzF1cHkrSFV3citjUkRFL1RLblJCOTlzRU5wcFJRc1BzZjB3am5DaWtiCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

By Default a .kube/config file is created, it contains

  • Cluster
    • https endpoint informatoin is stored as key value
  • User
    • Credentials information is stored to Authenticate to that cluster
  • Context
    • Context is a configuration that points to a cluster
    • Cluster + User

Passing Config as parameter

  • You can also pass kube conig as a paramter
kubectl config --kubeconfig="C:\someotherfolder\config"

Kube Config as an environment variable

  • Another way of doing it is by using environment variable $KUBECONFIG
  • You can have semicolon seperated config files an environment variable
C:\someotherfolder\config1;C:\someotherfolder\config2

Leave a Comment