k8s_command-list

date
Nov 17, 2023
slug
k8s-command-list
status
Published
tags
k8s
summary
k8s command list
type
Post

k8sコマンドリスト

deploymentを作成

nginxのdeploymentを作成する3つのPodを作成し、Podのスケールアウトを行うPodのリソース要求と制限を設定するPodのLivenessProbeを設定する(30秒後に/healthzにアクセスし、10秒ごとにアクセスする)PodのReadinessProbeを設定する(5秒後に/healthzにアクセスし、10秒ごとにアクセスする,30秒後にリクエストを受け付ける)minReadySecondsを設定する(30秒後に新しいPodが起動してから、古いPodが削除されるまでの時間を指定する)
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" livenessProbe: httpGet: path: /healthz port: 80 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /healthz port: 80 initialDelaySeconds: 5 periodSeconds: 10 minReadySeconds: 30
  • deployment作成
    • kubectl create -f deployment.yaml
  • deployment削除
    • kubectl delete deployment nginx-deployment

serviceを作成

  • service.yaml
    • apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - port: 8888 targetPort: 80 protocol: TCP type: ClusterIP
  • service作成
    • kubectl create -f service.yaml
  • service削除
    • kubectl delete service nginx-service

k8s クラスタ情報取得

  • Deployment情報取得
    • kubectl get deployments
  • Pod情報取得
    • kubectl get pods
  • Service情報取得
    • kubectl get services
  • Ingress情報取得
    • kubectl get ingresses
  • ConfigMap情報取得
    • kubectl get configmaps
  • Secret情報取得
    • kubectl get secrets
  • PersistentVolume情報取得
    • kubectl get persistentvolumes
  • PersistentVolumeClaim情報取得
    • kubectl get persistentvolumeclaims

k8s クラスタリソース作成

  • Deployment作成
    • kubectl create -f deployment.yaml

k8s リソースマニフェスト生成

  • Deploymentマニフェスト生成
    • kubectl create deployment nginx-deployment --image=nginx:1.14.2 --dry-run -o yaml > deployment.yaml
  • Serviceマニフェスト生成
    • kubectl create service clusterip nginx-service --tcp=8888:80 --dry-run -o yaml > service.yaml
  • Ingressマニフェスト生成
    • kubectl create ingress nginx-ingress --rule=nginx-service:8888 --dry-run -o yaml > ingress.yaml
  • ConfigMapマニフェスト生成
    • kubectl create configmap nginx-config --from-literal=nginx.conf=nginx.conf --dry-run -o yaml > configmap.yaml
  • Podマニフェスト生成
    • kubectl run nginx-pod --image=nginx:1.14.2 --dry-run -o yaml > pod.yaml

リソースのエクスポート

  • Deploymentエクスポート
    • kubectl get deployment nginx-deployment -o yaml --export > deployment.yaml
  • Serviceエクスポート
    • kubectl get service nginx-service -o yaml --export > service.yaml
  • Ingressエクスポート
    • kubectl get ingress nginx-ingress -o yaml --export > ingress.yaml
  • ConfigMapエクスポート
    • kubectl get configmap nginx-config -o yaml --export > configmap.yaml
  • Podエクスポート
    • kubectl get pod nginx-pod -o yaml --export > pod.yaml

k8s クラスタリソース削除

  • Deployment削除
    • kubectl delete deployment nginx-deployment
  • Service削除
    • kubectl delete service nginx-service
  • Ingress削除
    • kubectl delete ingress nginx-ingress
  • ConfigMap削除
    • kubectl delete configmap nginx-config
  • Pod削除
    • kubectl delete pod nginx-pod

k8s クラスタリソース更新

  • Deployment更新
    • kubectl apply -f deployment.yaml
  • Service更新
    • kubectl apply -f service.yaml

k8s コンテナログ取得

  • Podのログ取得
    • kubectl logs nginx-deployment-7c4d8c676f-7z5z2
  • Podのログ取得(複数のコンテナを持つ場合)
    • kubectl logs nginx-deployment-7c4d8c676f-7z5z2 -c nginx
  • Podのログ取得(直近のログを取得)
    • kubectl logs nginx-deployment-7c4d8c676f-7z5z2 --tail=10
  • Podのログ取得(リアルタイムでログを取得)
    • kubectl logs nginx-deployment-7c4d8c676f-7z5z2 -f
  • Podのログ取得(リアルタイムでログを取得,複数のコンテナを持つ場合)
    • kubectl logs nginx-deployment-7c4d8c676f-7z5z2 -c nginx -f

k8s コンテナポート転送

  • Podのポート転送
    • kubectl port-forward nginx-deployment-7c4d8c676f-7z5z2 8080:80
  • Podのポート転送(複数のコンテナを持つ場合)
    • kubectl port-forward nginx-deployment-7c4d8c676f-7z5z2 8080:80 -c nginx

k8s コンテナシェル実行

  • Podのシェル実行
    • kubectl exec -it nginx-deployment-7c4d8c676f-7z5z2 -- /bin/bash

k8s クラスタリソーススケールダウン

  • Deploymentスケールダウン
    • kubectl scale deployment nginx-deployment --replicas=1

k8s クラスタリソーススケールアップ

  • Deploymentスケールアップ
    • kubectl scale deployment nginx-deployment --replicas=3

k8s コンテナattach

  • Podのattach
    • kubectl attach nginx-deployment-7c4d8c676f-7z5z2

k8s Pod ポートExpose

  • PodのポートExpose
    • kubectl expose deployment nginx-deployment --type=NodePort --name=nginx-service

k8s クラスタリソースラベル付与

  • Deploymentにラベル付与
    • kubectl label deployment nginx-deployment app=nginx

k8s NSlookupコマンド実行

コマンドパターン化 kubectl run name --image-ImageName --restart=Never --rm -- command --args
  • PodのNSlookupコマンド実行
    • kubectl run -it --rm --restart=Never busybox --image=busybox nslookup nginx-service
  • PodのWgetコマンド実行
    • kubectl run -it --rm --restart=Never busybox --image=busybox wget nginx-service

contextの作成

  • contextの作成
    • kubectl config set-context my-context --cluster=my-cluster --user=my-user --namespace=my-namespace

contextの切り替え

  • contextの切り替え
    • kubectl config use-context my-context

contextの削除

  • contextの削除
    • kubectl config delete-context my-context

contextの一覧

  • contextの一覧
    • kubectl config get-contexts

contextの詳細

  • contextの詳細
    • kubectl config view

k8s namespaceの作成

  • namespaceの作成
    • kubectl create namespace my-namespace

k8s namespaceの削除

  • namespaceの削除
    • kubectl delete namespace my-namespace

k8s namespaceの切り替え

  • namespaceの切り替え
    • kubectl config set-context --current --namespace=my-namespace ```:w

k8s namespaceの一覧

  • namespaceの一覧
    • kubectl get namespaces
記事に関する疑問があればお気軽にご連絡ください。