Skip to content

Kubernetes

Alternative interfaces

Set up short names for contexts

  1. Open ~/.kube.config

  2. Modify contexts section:

    contexts:
    - context:
    cluster: cluster1
    user: cluster1
    name: dev
    - context:
    cluster: cluster2
    namespace: namespace1
    user: cluster2
    name: namespace1
    - context:
    cluster: cluster3
    namespace: db
    user: cluster3
    name: prod
    current-context: prod

Use specific context (i.e. cluster)

Terminal window
kubectl config use-context <context>

List namespaces

Terminal window
kubectl get ns

Set namespace

This will also update the relevant context’s namespace value in the ~/.kube/config file.

Terminal window
kubectl config set-context --current --namespace=<namespace>

List everything

Terminal window
kubectl get all

Show pod logs

Terminal window
kubectl logs pod/<pod>

Use ‘helm upgrade’ to install new version of a chart

This is far simpler than a more complex helm install command with tons of --set options.

Terminal window
helm upgrade <release name> <chart name> --reuse-values

More information here.

Get secret with a dot in its name

The normal access would be something like this:

Terminal window
kubectl get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

But doing the same thing for a secret with a dot in its name wouldn’t work, thus:

Terminal window
kubectl get secret docker-config -o jsonpath="{.data.\.dockerconfigjson}" | base64 -d

An alternative would be to use go-template:

Terminal window
kubectl get secret docker-config -o 'go-template={{index .data ".dockerconfigjson"}}' | base64 -d

List permissions

Terminal window
kubectl auth can-i --list