kubectl
https://github.com/kubernetes/kubectl/raw/master/images/kubectl-logo-medium.png
Kubectl is the Kubernetes cli version of a swiss army knife, and can do many things. While this Book is focused on using Kubectl to declaratively manage Applications in Kubernetes, it also covers other Kubectl functions.
「キューブコントロール」
Plugins
krew
kubens
sterm
code: (bash)
❯ kubectl
kubectl controls the Kubernetes cluster manager.
Basic Commands (Beginner):
create Create a resource from a file or from stdin
expose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes service
run Run a particular image on the cluster
set Set specific features on objects
Basic Commands (Intermediate):
explain Get documentation for a resource
get 1つまたは複数のリソースを表示する
edit Edit a resource on the server
delete Delete resources by file names, stdin, resources and names, or by resources and label selector
Deploy Commands:
rollout Manage the rollout of a resource
scale Set a new size for a deployment, replica set, or replication controller
autoscale Auto-scale a deployment, replica set, stateful set, or replication controller
Cluster Management Commands:
certificate Modify certificate resources.
cluster-info Display cluster information
top Display resource (CPU/memory) usage
cordon Mark node as unschedulable
uncordon Mark node as schedulable
drain Drain node in preparation for maintenance
taint Update the taints on one or more nodes
Troubleshooting and Debugging Commands:
describe Show details of a specific resource or group of resources
logs Print the logs for a container in a pod
attach Attach to a running container
exec Execute a command in a container
port-forward Forward one or more local ports to a pod
proxy Run a proxy to the Kubernetes API server
cp Copy files and directories to and from containers
auth Inspect authorization
debug Create debugging sessions for troubleshooting workloads and nodes
Advanced Commands:
diff Diff the live version against a would-be applied version
apply Apply a configuration to a resource by file name or stdin
patch Update fields of a resource
replace Replace a resource by file name or stdin
wait Experimental: Wait for a specific condition on one or many resources
kustomize Build a kustomization target from a directory or URL.
Settings Commands:
label リソースのラベルを更新する
annotate リソースのアノテーションを更新する
completion Output shell completion code for the specified shell (bash, zsh or fish)
Other Commands:
alpha Commands for features in alpha
api-resources Print the supported API resources on the server
api-versions Print the supported API versions on the server, in the form of "group/version"
config kubeconfigを変更する
plugin Provides utilities for interacting with plugins
version Print the client and server version information
Usage:
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
memo
kubectl get
-o jsonpath で特定の値を取得する。
NGINX_IP=$(kubectl get pod nginx -o jsonpath='{.status.podIP}')
--show-labels
-l|--selector
-L|--label-columns
kubectl run
Pod を作成するときは、--restart=Never を忘れずに。
--command オプションを付けると、引数が command(entrypoint)に渡される。
default は --command=false となっており args に渡される。
-it
--rm
終了した Pod を自動的に削除する。
-it と併用する。
kubectl create quota
ResourceQuota を作成する。
--hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
kubectl set
--dry-run=client で確認できる。
kubectl label
ラベルの追加・変更・削除を行う
削除は - を利用する
kubectl label pods foo bar-
kubectl annotate
アノテーションの追加・変更・削除を行う
削除は - を利用する
kubectl annotate pods foo description-
kubectl logs
-p で前の instance でのログを確認する。
kubectl top
リソースの使用率を確認する。
kubectl cordon/uncordon $node
対象ノードに Pod をスケジュールする/しない
コマンド実行後にデプロイされた Pod が対象となる
今デプロイされている Pod には影響がない
kubectl drain
対象ノードをメンテナンスモードにする
Pod を追い出す
--ignore-daemonsets
--force
rs に属さない Pod も削除する
再作成されない
kubectl debug
エフェメラルコンテナーを作成する