Kubernetes(K 8 s)1.14.3常用操作コマンド


kubectl --helpこのコマンドを実行すると、コマンドリストが表示されます.ここでは、私がよく使うコマンドのセットにすぎません.
リソースの作成、サービスの作成、podなど
kubectl create -f rocketmq-rc.yml

fox.風
リソースの削除、サービスの作成、podの削除など
kubectl delete -f rocketmq-rc.yml

リソースファイルの削除なし
次の3つの操作が完了すると、リソースファイルのないpodは基本的にすべて削除できます.
サービス削除
先に表示
kubectl get service

次に削除
kubectl delete service   xxxx

deployment削除
先に表示
kubectl get deployment

次に削除
kubectl delete deployment   xxxx

rc削除
先に表示
kubectl get rc

次に削除
kubectl delete rc   xxxx

pod削除後、ずっとterminating状態で、強制削除
rmqui-0はあなたのpodです
kubectl delete pod rmqui-0 --force --grace-period=0
             
kubectl delete pod rmqui-0 --force --grace-period=0 -n test

リソースの再構築、サービスの作成、podの変更など
kubectl replace --force -f rocketmq-rc.yml

注意:このコマンドは、実際には、kubectl delete -f rocketmq-rc.ymlkubectl create -f rocketmq-rc.ymlの組み合わせです.
次のコマンドはリソースを更新しますが、少量のパラメータしか変更できません.少ないです.
kubectl replace -f rocketmq-rc.yml

再起動pod
rmqui-0はあなたのpod testを名前空間とします
kubectl get pod rmqui-0  -o yaml | kubectl replace --force -f -
          
kubectl get pod rmqui-0 -n test -o yaml | kubectl replace --force -f -

kubectl editリソースオブジェクトの編集
様々なxx.ymlファイルがある場合に使用されることは少なく、ymlファイルがない場合には、例えばservicemysql関連パラメータを修正するために使用され、-o yamlフォーマットに出力される
kubectl get service mysql -o yaml

その後、変更コマンドを実行します.
kubectl edit service mysql 

以下の形式の臨時ファイルを開き、修正が完了したら、まずキーボードの左上隅ESCキーを押して、:wqを入力して、保存を終了して、最後にEdit cancelled, no changes made.を出力して保存アプリケーションに成功したと公式にも言いました.実際に使用しているviという編集ツール
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2019-06-14T02:42:00Z"
  labels:
    name: mysql
  name: mysql
  namespace: default
  resourceVersion: "101235"
  selfLink: /api/v1/namespaces/default/services/mysql
  uid: fbf7881d-8e4d-11e9-9b60-4cedfbc99721
spec:
  clusterIP: 10.1.97.58
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 3306
    port: 3306
    protocol: TCP
    targetPort: 3306
  selector:
    name: mysql
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

kubectl getリソースの表示
追加パラメータ-o wide出力追加ポイント情報-A表示ネーミングスペース--show-labels表示ラベル
ノードの表示
k 8 sを複数台使用する場合に使用
kubectl get node

podsリソースの表示
kubectl get pods

しゅつりょく
NAME                 READY   STATUS    RESTARTS   AGE
elasticsearch-0      1/1     Running   3          27h
kibana-sz5nh         1/1     Running   1          27h

サービスの表示
kubectl get svc
 
kubectl get service

しゅつりょく
NAME              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                           AGE
elasticsearch     NodePort    10.1.70.10     <none>        9200:9200/TCP,9300:9300/TCP                       27h
kibana            NodePort    10.1.229.10    <none>        5601:5601/TCP                                     27h
kubernetes        ClusterIP   10.1.0.1       <none>        443/TCP                                           2d5h
mysql             NodePort    10.1.97.58     <none>        3306:3306/TCP                                     30h

replicationcontrollersの表示
kubectl get rc

しゅつりょく
NAME           DESIRED   CURRENT   READY   AGE
kibana         1         1         1       27h
mysql          1         1         1       30h
mysql-master   1         1         1       31h

componentstatusesの表示
kubectl get cs

しゅつりょく
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"} 

コンビネーションアウトプット
kubectl get svc,pod,cs,rc

pod,serviceなどの詳細表示
podの詳細を表示
これはよく使われますが、podのSTATUSが長い間Running状態ではない場合、コマンドで表示できます.例えば、ミラーの引き出しエラー、ディレクトリが存在しないなど、表示できます.
kubectl describe pod elasticsearch-0

Elasticsearch-0はkubectl get podリストのNAME
しゅつりょく
....
........
Volumes:
  vol-logs:
    Type:          HostPath (bare host directory volume)
    Path:          /www/k8s/afm-data/elasticsearch/logs
    HostPathType:  Directory
  vol-data:
    Type:          HostPath (bare host directory volume)
    Path:          /www/k8s/afm-data/elasticsearch/data
    HostPathType:  Directory
  vol-plugins-analysis-ik:
    Type:          HostPath (bare host directory volume)
    Path:          /www/k8s/afm-data/elasticsearch/plugins/analysis-ik
    HostPathType:  Directory
  vol-es:
    Type:          HostPath (bare host directory volume)
    Path:          /www/k8s/afm-data/elasticsearch/config/elasticsearch.yml
    HostPathType:  File
  vol-synonyms:
    Type:          HostPath (bare host directory volume)
    Path:          /www/k8s/afm-data/elasticsearch/config/synonyms.txt
    HostPathType:  File
  default-token-vh8lg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-vh8lg
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

podの詳細を表示
kubectl describe svc elasticsearch

しゅつりょく
Name:                     elasticsearch
Namespace:                default
Labels:                   app=elasticsearch
Annotations:              <none>
Selector:                 app=elasticsearch
Type:                     NodePort
IP:                       10.1.70.10
Port:                     elasticsearch9200  9200/TCP
TargetPort:               9200/TCP
NodePort:                 elasticsearch9200  9200/TCP
Endpoints:                10.244.0.121:9200
Port:                     elasticsearch9300  9300/TCP
TargetPort:               9300/TCP
NodePort:                 elasticsearch9300  9300/TCP
Endpoints:                10.244.0.121:9300
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

podログの表示
podのstdoutログの表示
kubectl logs elasticsearch-0 

podのstdoutログの追跡
デフォルトではPodの1番目のコンテナを使用して実行されます
kubectl logs -f elasticsearch-0 

追加パラメータ-cコンテナ名、特定のコンテナを指定できます
pod内部に入る
デフォルトではPodの1番目のコンテナを使用して実行されます
kubectl exec -it elasticsearch-0 bash

追加パラメータ-nネーミングスペース-cコンテナ名、特定のコンテナを指定できます