Context
kubeconfig ファイル作成・更新
sh
aws eks update-kubeconfig --name {cluster-name} --alias {context-name} --region ap-northeast-1
Context 一覧
sh
kubectl config get-contexts
Context 変更
sh
kubectl config use-context {context-name}
Pod
Pod 一覧
sh
kubectl get po
## ネームスペース指定
kubectl get po -n {namespace}
## すべてのネームスペースのPodを取得
kubectl get po --all-namespaces
## ラベル指定
kubectl get po -l '{label-name}={label-value}'
## ラベル一覧取得
kubectl get po --show-labels
## 詳細表示
kubectl get po -o wide
Pod Log tail
sh
kubectl logs -f {pod-name}
Pod 再起動
sh
kubectl rollout restart deployment {deployment-name}
Pod 即時削除
sh
kubectl delete po --grace-period=0 {pod-name}
環境変数一覧
sh
kubectl exec -it {pod-name} -- env
編集
Deployment 編集
sh
kubectl edit deployment {deployment-name}
ConfigMap 編集
sh
kubectl edit configmap {configmap-name}
HorizontalPodAutoscaler 編集
sh
kubectl edit hpa {hpa-name}
負荷確認
PodのCPU使用率、メモリ使用量
sh
kubectl top po
## ラベル指定
kubectl top po -l '{label-name}={label-value}'
NodeのCPU使用率、メモリ使用量
sh
kubectl top node
Job
Job 手動実行
sh
kubectl create job {job-name} --from=cronjob/{cron-name}
Node / NodeGroup
Node 詳細
sh
kubectl describe nodes
Node 一覧
sh
kubectl get nodes --sort-by=.metadata.creationTimestamp -o wide
NodeGroup 一覧
sh
eksctl get nodegroups --cluster {cluster-name}
EKSクラスタ管理
Version 確認
sh
$ kubectl version --short
クラスタ アップデート
sh
eksctl upgrade cluster --name {cluster-name}
NodeGroup 作成
sh
eksctl create nodegroup -f={eksctl filename}.yaml --include='{nodegroup-name}'
NodeGroup 削除
sh
eksctl delete nodegroup -f={eksctl filename}.yaml --include='{nodegroup-name}'
Drain
sh
kubectl drain --delete-local-data --ignore-daemonsets {node-name}
## ノードグループ指定
kubectl drain --delete-local-data --ignore-daemonsets -l alpha.eksctl.io/nodegroup-name={nodegroup-name}
Cordon
sh
kubectl cordon {node-name}
## ノードグループ指定
kubectl cordon -l alpha.eksctl.io/nodegroup-name={nodegroup-name}
aws-node
aws-node 一覧
sh
kubectl get pods -n kube-system -l k8s-app=aws-node
aws-node 設定確認
sh
kubectl get daemonset aws-node -n kube-system -o jsonpath='{.spec.template.spec.containers[*].env}' | jq .
aws-node 設定更新
sh
kubectl -n kube-system set env daemonset aws-node WARM_ENI_TARGET-
kubectl -n kube-system set env daemonset aws-node MINIMUM_IP_TARGET=10
kubectl -n kube-system set env daemonset aws-node WARM_IP_TARGET=1
サブネット空きIPアドレス
sh
aws ec2 describe-subnets | jq -r '.Subnets[] | select((.Tags[] | select(.Key == "Name")).Value | startswith("{subnet-name}")) | (.Tags[] | select(.Key == "Name")).Value + " " + (.AvailableIpAddressCount|tostring)'
Cluster Autoscaler
Cluster AutoScaler 一覧
sh
kubectl get pods -n kube-system -l app=cluster-autoscaler