Skip to content
On this page

📆 2022-06-11

よく使う eksctl, kubectl コマンド

#EKS

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

Released under the MIT License.