Collection of useful Kubernetes utilities
Creates service account with specified name and cluster-admin
ClusterRole in kube-system namespace
Create service account with cluster-admin ClusterRole in kube-system namespace
kube-create-admin-user [options]
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-u, --user Name of the admin user to create (default: admin-user)
-c, --context The name of the kubeconfig context to use.
--help Display this help and exit
-- End of options
kube-docker-env connects to the remote docker daemon running in the Kubernetes cluster.
Connect to the docker daemon running in the Kubernetes cluster.
Similar to '$(minikube docker-env)' and '$(docker-machine env)'.
kube-docker-env [options]
This script creates connector pod which connects local machine to the remote docker server.
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-n, --namespace='' Namespace of the connector pod (default: kubeflow)
-p, --pod='' Name of the connector pod (default: docker-gateway)
-h, --host='' Run pod on a specific host
Note: In this case, the host name is appended to the Pod name.
--context='' The name of the kubeconfig context to use.
Has precedence over KUBE_CONTEXT variable.
--help Display this help and exit
-- End of options
Get bearer token from kube-system:admin-user service account.
Bearer token can be used to login into Kubernetes Dashboard
kube-get-bearer-token [options]
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-c, --context The name of the kubeconfig context to use.
--help Display this help and exit
-- End of options
Get list of Kubernetes services available on node ports,
similar to $(minikube service)
.
Print list of all images running in pods in the Kubernetes cluster.
Prints first found Kubernetes pods that matches a specified prefix.
Merges Kubernetes configuration file into ~/.kube/config configuration file.
Usage: ./kube-merge-config kubernetes-config-file
Merges kubernetes-config-file into ~/.kube/config configuration file
Transfer files and directories with rsync to and from running container.
rsync
tool must be available in the container.
Rsync to/from the k8s pod
kube-rsync [options] [--] [rsync-options] src_path dest_path
paths starting with 'pod-name-prefix[@pod-namespace]:' are remote on specified pod
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-n, --namespace='' Namespace of the pod
--context='' The name of the kubeconfig context to use.
Has precedence over KUBE_CONTEXT variable.
-c, --container='' Container name. If omitted, the first container in the pod will be chosen
--help Display this help and exit
-- End of options
./kube-wait-for-pod [options] pod_name_prefix
Wait until Kubernetes pod runs with the name starting with pod_name_prefix.
-n | --namespace NAMESPACE Set pod namespace (default: kubeflow)
--trials N Number of trials (0 - infinite, default: 0)
--run-checks N Number of checks to perform until pod is assumed to be running (default: 5)
--delay SECONDS Delay in seconds between checks (default: 2)
--debug Enable debug output
Performs network operations such as pinging the IP address 8.8.8.8 and DNS lookup of google.com to test network connectivity in the cluster.
Test Kubernetes network
kube-test-network [options]
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-u, --user Name of the user service account in namespace kube-system (default: )
-c, --context The name of the kubeconfig context to use.
--help Display this help and exit
-- End of options
Backup Kubernetes state to set of YAML files. This tool is based on https://github.com/pieterlange/kube-backup .
kube-backup [options] [dest-dir]
When dest-dir is not specified current directory is used (/home/rubinste/Kubernetes/kube-utils)
environment variables:
KUBECTL Name of the kubectl command to use
KUBECTL_BIN Full path to the kubectl binary. This variable has precedence over KUBECTL
KUBE_CONTEXT The name of the kubeconfig context to use
KUBECTL_OPTS Additional options for kubectl
options:
-c, --context The name of the kubeconfig context to use.
Has precedence over KUBE_CONTEXT variable.
-n, --namespace(s)= Namespaces to backup separted by spaces.
Multiple namespace arguments are concatenated
-r, --resourcetype(s)= Resource types to backup separted by spaces.
Multiple resourcetype arguments are concatenated
-g, --globalresource(s)= Global resources to backup separted by spaces.
Multiple global resource arguments are concatenated
--include-tiller-configmaps
Include Tiller configmaps into backup
--help Display this help and exit
-- End of options
Get the list of Kubernetes pods that use GPUs, currently only NVIDIA GPUs are supported.
Get the list of Kubernetes nodes that contain and use GPUs, currently only NVIDIA GPUs are supported.
Get the list of Kubernetes pods that use NVIDIA GPUs
usage: kube-nvidia-get-processes.py [-h] [-l LOGLEVEL] [--kubeconfig KUBECONFIG] [--context CONTEXT]
Get pod processes that use NVIDIA GPU
optional arguments:
-h, --help show this help message and exit
-l LOGLEVEL, --log LOGLEVEL
log level (use one of CRITICAL,ERROR,WARNING,INFO,DEBUG) (default: WARNING)
--kubeconfig KUBECONFIG
Path to the kubeconfig file to use for CLI requests. (default: None)
--context CONTEXT The name of the kubeconfig context to use (default: None)
Get information about used storage volumes.
usage: kube-get-volume-info.py [-h] [-l LOGLEVEL] [--kubeconfig KUBECONFIG] [--context CONTEXT] [-H] [-o {pvc-table,usage-table,yaml,json}] [-s] [-f] [-v VOLUME_TYPE] [-e EXPR] [-d]
Get Kubernetes volume information
optional arguments:
-h, --help show this help message and exit
-l LOGLEVEL, --log LOGLEVEL
log level (use one of CRITICAL,ERROR,WARNING,INFO,DEBUG) (default: WARNING)
--kubeconfig KUBECONFIG
Path to the kubeconfig file to use for CLI requests. (default: None)
--context CONTEXT The name of the kubeconfig context to use (default: None)
-H, --no-headers Don't print headers (default: False)
-o {pvc-table,usage-table,yaml,json}, --output {pvc-table,usage-table,yaml,json}
Output format of PV / PVC information (default: usage-table)
-s, --separate-pvc Output separately PV and PVC files (default: False)
-f, --output-to-files
Output PV / PVC to files (default: False)
-v VOLUME_TYPE, --select-volume VOLUME_TYPE
Select only persistent volumes of TYPE (e.g. nfs, hostPath) (default: [])
-e EXPR, --select-expr EXPR
Select volume by using Python-like expression (e.g. '"nfs" in volume') (default: None)
-d, --show-dependent Output dependent Kubernetes objects (e.g. Pods controlled by ReplicaSet, Jobs controlled by CronJob, etc.) (default: False)
Bash shell Library with common functions used by all utilities.
Copyright 2019-2023 Dmitri Rubinstein
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.