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