kubernetesコンポーネント--kubectlコマンドラインツール管理

要素:
1、kubectl概要
2、kubectl文法
3、kubectl管理コマンド
4、類似点と相違点を作成し、コマンド適用
5を、例が実証
、kubectl概要

Kubectl是一个命令行界面,用于运行针对Kubernetes集群的命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数--kubeconfig来指定其他位置的kubeconfig文件。

二、kubectl文法

1.ターミナルウィンドウから、次の構文kubectl、コマンドを実行します。

kubectl [command] [TYPE] [NAME] [flags]

2前記コマンド、タイプ、名前、およびフラグは、次のとおり

  • コマンド
指定要在一个或多个资源进行的操作,例如create,get,describe,delete。例如“kubectl get cs”。
  • タイプ
指定资源类型。资源类型不区分大小写,可以指定单数,复数或缩写形式。

例:

#以下命令产生相同的输出
kubectl get pod pod1

kubectl get pods pod1

kubectl get po pod1
  • 名前
    指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息,如“kubectl get pods”。
    在对多个资源执行操作时,我们可以按类型和名称指定每个资源,或指定一个或多个文件:

リソースの種類と名前で1:

  • 同じリソースタイプ、グループリソースの場合:
TYPE1 name1 name2 name<#>。

kubectl get pod example-pod1 example-pod2
  • 複数のリソースタイプを指定します。
TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>。

例:

kubectl get pod/example-pod1 replicationcontroller/example-rc1

指定されたリソースファイルを1つ以上使用するには、2:

-f file1 -f file2 -f file<#>
#注意使用YAML而不是JSON,因为YAML往往更加用户友好,特别是对于配置文件。

例:

kubectl get pod -f ./pod.yaml
  • フラグ:
指定的可选标志,不过值得注意的是,使用命令行指定参数会覆盖默认值以及相关的环境变量。
例如,我们可以使用-s或--server标志来指定Kubernetes API服务器的地址和端口。

三、kubectl管理コマンド

タイプ コマンド 説明
基本的なコマンド 作ります 名前または標準入力でリソースファイルを作成します。
晒します これは、新しいサービスのためのリソースをオープンします
ラン クラスタ内の特定のイメージを実行します
セットする オブジェクト上の特定の機能を設定します
取得する 1つ以上のリソースを表示
説明します ドキュメントの参照
編集します リソースを編集するには、デフォルトのエディタを使用
削除 名前でリソースファイルを削除するには、標準入力、リソース名やタグセレクタ
デプロイメントコマンド ロールアウトする 解放されたリソースの管理
ローリング更新 与えられたコピー制御のためのロールオーバー
規模 収容伸縮量ポッド、展開、さらにreplicaSet、RCまたはジョブ
オートスケール 自動選択又は拡張ボリュームの縮小セットを作成する数ポッド
クラスタ管理コマンド 証明書 証明書のリソースを変更
クラスタ情報 表示クラスタ情報
ディスプレイのリソース(CPU /メモリ/ストレージ)を使用。Heapsterは、実行する必要があります
非常線 スケジューリングノードがマークされていません
uncordon タグのノードは、スケジュールすることができます
ドレイン ノードの追放上のアプリケーションは、メンテナンスのためにオフラインに準備します
汚点 ノード汚染マークを変更します。
デバッグコマンド 述べます 特定のリソースまたはリソースグループの詳細情報を表示します
ログ ポッド内のコンテナでの印刷ログ。ポッドが唯一のコンテナである場合は、船名は省略可能です
アタッチ コンテナに実行されています
EXEC コンテナに実行します
ポートフォワード ポッドに1つ以上のローカルポートを転送
代理 KubernetesのAPIサーバーへのプロキシを実行します
CP 容器内にファイルやディレクトリをコピーします。
認証 ライセンスをチェック
統帥 適用します 標準入力ファイル名のアプリケーションを介してリソースの配分や
パッチ パッチの変更を使用して、リソースのフィールドを更新
置き換えます ファイル名または標準入力でリソースを交換してください
変換 APIの異なるバージョン間の変換プロファイル
設定コマンド ラベル リソース更新のラベル
注釈 リソースの更新コメント
完了 オートコンプリートを実装するために使用Kubectlツール
その他のコマンド API-バージョン サポートされるAPIの印刷版
コンフィグ 変更kubeconfigファイル(などの設定、認証情報として、APIにアクセスするために使用されます)
助けて すべてのコマンドのヘルプ
プラグイン コマンドラインプラグインを実行します

第四に、類似点と相違点を作成し、コマンドを適用します

  • YAMLファイルによって設立
kubectl create -f FILENAME [options]
  • YAMLファイルによって、アップグレードの展開
kubectl apply -f FILENAME
  • 同じポイント
如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod
  • 異なる点
create命令:是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
apply命令:根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性

5つの例が示します。

  • プロジェクトのライフサイクル
    创建->发布->更新->回滚->删除

nginxの作成1.

#常用语法:kubectl run NAME --image=image [--env="key=value"参数] [--port=port端口] [--replicas=replicas副本集] [--dry-run=bool状态] [--overrides=inline-json] [--command命令] -- [COMMAND] [args...] [options]`
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3

#查看pod节点
kubectl get pods

ロードバランシング機能を提供nginxのサービスを公開2

#常用语法:kubectl expose (-f FILENAME | TYPE NAME) [--port=port群集之间内部通信的端口] [--protocol=TCP|UDP|SCTP] [--target-port对外暴露的端口=number-or-name] [--name=name指定名称] [--external-ip=external-ip-of-service] [--type=type指定类型] [options]
kubectl expose deployment nginx-deployment --port=80 --target-port=80 --name=nginx-deployment-service --type=NodePort

#查看服务发布,此处svc位service服务组件的缩写
kubectl get pods,svc

#查看后端关联的节点
kubectl get endpoints

#查看网络状态详细信息
kubectl get pods -o wide

#查看服务的端口
kubectl get svc

#kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引入了ipvs模式

#node节点安装ipvsadmin工具查看服务端口
yum install ipvsadm -y

ipvsadm -L -n
#使用工具查看,可见调度算法为rr轮询模式
#master端查看访问日志
kubectl get pods

3.更新nginxのバージョン1.14

  • Googleはnginxのバージョン情報を表示するには、ページをリロードするブラウザを更新します
查看nginx版本步骤:F12打开开发者选项->F5刷新访问->找到network ->点击name ->找到headers头部信息
kubectl set image deployment/nginx-deployment nginx-deployment=nginx:1.14

4.ロールバックnginxの

#查看历史版本
kubectl rollout history deployment/nginx-deployment

#执行回滚到上一次版本
kubectl rollout undo deployment/nginx-deployment

#检查回滚状态
kubectl rollout status deployment/nginx-deployment

5. [削除] nginxの

#删除deployment
kubectl delete deployment/nginx-deployment

#删除服务SVC
kubectl get svc

6.その他のコマンド

  • 詳細については、特定のリソースを参照してください。
kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]
  • 資源のViewの展開
kubectl describe deployment/nginx-deployment
  • ビューリソースオブジェクト速記
kubectl api-resources
  • 対応するポッドを入力します。
kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options]
  • YAML生成されたファイルの形式を確認してください
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml
  • ビューJSON形式のファイルが生成されます
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json
  • YAML、JSONファイルのエクスポートを生成します
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json(yaml) > test.json(yaml)
  • 輸出のために利用可能なリソース
kubectl get svc/nginx-svc --export -o yaml > nginx-svc.yaml
  • テストコマンドの正当性を実行しない(類似するシェルスクリプト-n SH)
kubectl run nginx --image=nginx --port=80 --replicas=2 --dry-run

おすすめ

転載: blog.51cto.com/14475876/2472118