ZeroLoom

Kubernetes コマンドリスト

September 30, 2024
3 min read
  • Kubernetes のバージョンを確認

    bash
    kubectl version --client
    kubectl version --short
    kubectl get nodes -o wide
  • Pod / Service の稼働状況を確認

    bash
    kubectl get pod,svc --all-namespaces -o wide
    kubectl get pod,svc -A -o wide
  • Pod の詳細情報を確認

    bash
    kubectl describe pod <pod_name> -n <namespace>
  • Pod / Container に接続

    bash
    kubectl exec -it <pod_name> -c <container_name> -- /bin/bash
  • Pod を削除

    bash
    kubectl delete pod <pod_name>
  • 起動に失敗した Pod を削除

    bash
    kubectl delete pod --field-selector=status.phase=Failed
  • Service の状態を確認

    bash
    kubectl get svc <service_name>
  • Service の詳細情報を確認

    bash
    kubectl describe svc <service_name>
  • Service を削除

    bash
    kubectl delete svc <service_name>
  • Deployment を作成

    bash
    kubectl create deployment <deployment_name> --image=<image_name> --replicas=2
  • リソースを外部に公開するための Service を作成

    bash
    kubectl expose deployment <deployment_name> --type=NodePort --port=80
  • Deployment を削除

    bash
    kubectl delete deployment <deployment_name>
  • Deployment を確認

    bash
    kubectl get deployment -n <namespace>
    kubectl get deployment -A
  • ログを確認

    bash
    kubectl logs <pod_name> -n <namespace>
  • イベントを確認

    bash
    kubectl get events
  • 証明書(トークン)を作成

    bash
    sudo kubeadm token create --print-join-command
  • 証明書(トークン)を確認

    bash
    sudo kubeadm token list
  • 証明書(トークン)を更新

    bash
    sudo kubeadm init phase upload-certs --upload-certs
  • ノードの taint を抽出

    bash
    kubectl describe nodes <node_name> | grep -i taint
  • コントロールプレーンの taint を無効化

    bash
    kubectl taint nodes <node_name> node-role.kubernetes.io/control-plane:NoSchedule-
  • コントロールプレーンの taint を有効化

    bash
    kubectl taint nodes <node_name> node-role.kubernetes.io/control-plane:NoSchedule
  • クラスターをリセット

    bash
    kubectl delete pods --all
    kubectl delete services --all
    kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets
    kubectl delete node <node_name>
    sudo kubeadm reset
    sudo systemctl stop containerd
    sudo rm -rf /var/lib/containerd
    sudo systemctl start containerd
  • マスターノードへの接続情報をリセットする場合

    bash
    sudo kubeadm reset
    sudo rm -rf $HOME/.kube
    sudo systemctl stop containerd
    sudo rm -rf /var/lib/containerd
    sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X
    sudo systemctl start containerd.service
  • コンテナランタイム環境の確認

    bash
    kubectl get runtimeclasses
  • コンテナにファイルをコピー

    bash
    kubectl cp <file_path> <pod_name>/<container_name>:<dir_name>
  • サービスアカウントを作成

    bash
    kubectl create serviceaccount <service_account_name> -n <namespace>
  • サービスアカウントを確認

    bash
    kubectl get serviceaccounts -n <namespace>
    kubectl get serviceaccounts -n <namespace> -o yaml
  • サービスアカウントを削除

    bash
    kubectl delete serviceaccount <service_account_name> -n <namespace>
  • サービスアカウントに管理者権限を付与

    bash
    kubectl create clusterrolebinding <service_account_name> \
    --clusterrole=cluster-admin \
    --serviceaccount=<namespace>:<service_account_name>
  • サービスアカウントのシークレットトークンを生成

    bash
    kubectl create token <service_account_name> -n <namespace>
  • サービスアカウントのシークレットトークンを取得

    bash
    kubectl get secrets -n <namespace> | grep <service_account_name>
    kubectl describe secret <secret_name> -n <namespace>
  • シークレットトークンを削除

    bash
    kubectl delete secret <secret_name> -n <namespace>
  • Cluster Role Binding を確認

    bash
    kubectl get clusterrolebinding <service_account_name> -o yaml
  • Cluster Role Binding を削除

    bash
    kubectl delete clusterrolebinding <service_account_name>
  • ラベルの付与状況を確認

    bash
    kubectl get nodes --show-labels
    kubectl label nodes <node_name> <label_key>=<label_value>
  • ServiceMonitor を確認

    bash
    kubectl get servicemonitor -n <namespace>
  • Ingress を確認

    bash
    kubectl get ingress -n <namespace>
  • ConfigMap を確認

    bash
    kubectl get configmap -n <namespace>
  • 不要なイメージを削除

    bash
    sudo crictl rmi $(sudo crictl images -q)