1.概要
kubectlコマンド遠隔操作K8Sクラスタによって、:主にオブジェクトの配置を介してK8Sは(アプリケーションの配備、配備進入ルーティングルール、サービスの配備、等のような)様々なタスクを定義します。
オブジェクト定義はYAML形式で一般的に記載されています。
YAMLデータ列は簡単なフォーマット、インデントによってデータを整理するための主な方法です。
YAMLの例:
#コメント
ハウス:
ファミリー:
名前:Doeの
両親:# - 始まり、配列要素を表し
- ジョン
- ジェーン 子供: - ポール - マーク- シモーネアドレス:数:34 ストリート:メインストリート市:12345:郵便番号Nowheretown
良いオブジェクトの後kubectlコマンドによってK8Sを実行するためにサーバーに送信されたオブジェクト・ファイルを定義することができます。
オブジェクトの形式:
apiVersion:アプリ/ V1#K8S APIのバージョンの
種類:展開#オブジェクトタイプの
メタデータ:このような定義名として#オブジェクトのメタデータ定義、
nginx-:名前展開
スペック:#オブジェクトのコンテンツの定義
.....
ステータス:#オブジェクトランニング、通常、我々は、更新する責任K8Sを定義する必要はありません
....
詳細2. kubectlコマンド
2.1。Kubectlのインストールおよび設定
インストールkubectlコマンド
#Linuxの
カール-LO https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/linux/amd64/kubectl
ます。chmod + X ./ kubectl
ミュージックビデオ./kubectlは/ usr / binに/ kubectl
#のWindowsの、kubectl downloadコマンドは、PATH環境変数、パスkubectl構成へのパス
https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/windows/amd64/kubectl.exe
K8Sクラスタ構成接続の資格情報
kubectlコマンドは、$ HOME / .kube / configファイルに格納されているデフォルトを設定するには、リモートサーバーに接続するために、あなたも--kubeconfigパラメータ、例を指定することにより、コンフィギュレーションファイルを実行することができます。kubectl --kubeconfig ./k8s.confポッドを取得します
証明書のK8Sは、取得する方法を示すために、一例として、アリをクラウドにクラスタ:
保存された資格情報は、指定された場所にするために、図のコピー
2.2。Kubectlは、一般的な操作のためのコマンド
何かを展開するよう#ここでPODを展開、ちょうど定義どのようなYAMLプロファイル見るために、設定オブジェクトを適用します
kubectl適用-f ./ pod.yaml
#kubectlサブコマンドshowユーザーK8S資源、我々が対象でK8Sを展開リソースをGET物事。
#すべてのポッドを表示
PODSがGET kubectl
-すべてのポッド#ショーKUBE-システムの名前空間、デフォルトのkubectlコマンドのみ操作デフォルトのデフォルトの名前空間、することができますn型パラメータは名前空間を指定
kubectl GET PODS -n kube- システム
#ショーすべて展開 kubectlを展開GET
#は、全てのサービス(サービス)を示し GET kubectl展開する
#はすべての入力を示して 侵入GET kubectl
、特定の入口リソースの構成を示す任意のリソースYAMLコンフィギュレーションコマンドの形式に固有示し、YAML形式に#を:リソース名のリソースタイプを取得kubectlを- O YAMLは 進入リソース名をGET kubectl - O YAML#は、指定されたリソースを削除-f削除kubectl設定ファイルで定義された特定のオブジェクトの内容を削除します./pod.yaml#管理-APP-5f84f57f7-vthlf容器内ExecコマンドのID番号は、LS / alidata /実行kubectlコンテナ容器内のコマンド形式を実行WWWアプリコマンドkubectl EXEC-5f84f57f7管理者vthlfのLS / alidata / #でWWWを管理アプリ-5f84f57f7-vthlf容器、対話型のウィンドウオープンシェル、追加する必要- ITはkubectl幹部-it管理アプリ-5f84f57f7パラメータ -vthlfバッシュ
共通のオブジェクト(オブジェクト)タイプ3 K8S
3.1。配備
主に展開ポッドのために、ローリング・アップグレードをサポートしています。
apiVersion:アプリ/ V1
#オブジェクトタイプの
種類:展開
メタデータ:
名前:nginx- 展開#deployment名前
ラベル:
アプリケーション:nginxの#deploymentラベル、自由に定義することができます
:スペック
レプリカ:3 コピーの#pod番号
セレクタ:#podセレクタの定義を、主にPODのラベル検索に応じて管理する必要があるかを定義するために使用
:matchLabels
アプリケーション:nginxの#podラベル
テンプレートを:#podテンプレートを定義
メタデータ:
ラベル:#podのラベル定義
のApp:nginxの
スペック:
#は、容器の配列を定義:コンテナ
- 名前:nginxの#をコンテナ名の 画像:nginxの:1.7.9 #ミラーアドレス コマンド:#コンテナは、コマンドを起動し、[オプション] - /alidata/www/scripts/start.shポート:#コンテナポートを露出する必要が定義- containerPort:80 ENV :#環境変数を定義し、[オプション] - 名:ZHIPUZI_CONSOLE_URL#変数名値:https://www.xxx.com#変数の値
3.2。サービス
サービス定義は、主に露出ポッドコンテナサービスに使用されます。
apiVersion:V1
#オブジェクトタイプ
種類:サービス
メタデータ:
名前:MY- サービス#サービス名の
スペック:
セレクター:#podセレクタ定義要求がこれらのポッド処理に転送されることによって決定される
nginxの#podタグ:アプリ
ポート:#サービスポート定義
- プロトコル:TCP#プロトコルの種類、主にTCPおよびUDP
ポート:80 #サービスポート targetPort:80 #podさらさコンテナ港
3.3。イングレス
HTTP、主にエクストラネットに公開されたサービスのために、ルール定義をルーティング
apiVersion:拡張機能/ v1beta1
#オブジェクトタイプの
種類:イングレス
メタデータ:
名前:MY- イングレス#Ingressアプリケーション名の
スペック:
ルール:#ルーティングルール
- ホスト:www.xxx.com#ドメイン
HTTP:
パス:#はアクセスパスを定義します
-パス: / 全てに代わって#パス要求 バックエンド:#はどのようなサービスが、どのポートに要求を転送 MY-:serviceNameのサービス#サービス名 SERVICEPORT:80#サービスポート
3.4。configMap
主にコンテナの構成管理のため。
apiVersion:v1の
種類:ConfigMap
メタデータ:
名前:MY- 設定#構成項目名
データ:
キー1:VALUE1の
KEY2:VALUE2を
後に容器内に配置された構成は、次の方法で適用することができる定義します。
#環境変数の設定を介して注入
apiVersion:V1
種類:ポッド
メタデータ:
名前:POD-config設定1 - 。
仕様:
コンテナ:
-名前:試験- コンテナ
画像:busyboxのの
コマンド:[ "/ binに/ SH"、 "-C"、 " ENV " ] ENV : - 名前:SPECIAL_LEVEL_KEY ##環境変数valueFromおよび:## valueFromおよび基準値のenv値configMapKeyRef構成項目を指定するために使用します。名前:MY- 設定##参照プロファイル名のキー:キー1 ##参照構成をアイテムのキーrestartPolicy:決して
#データボリューム構成を介して注入
apiVersion:V1
種類:ポッド
メタデータ:
名前:POD-config設定4 - 。
仕様:
コンテナ:
-名前:試験- コンテナ
画像:busyboxのの
コマンド:[ "/ binに/ SH"、 "-C"、 " / "LSは/ etc / configの] ##ディレクトリ内のファイル名に記載されている :volumeMounts 名:CONFIG- - ボリューム#設定項目名の MOUNTPATH:の/ etc / コンフィグ#コンテナはディレクトリのボリュームをマウントします。#ボリュームデータの定義を-名前:CONFIG- ボリューム#データボリューム名configMap:#ボリュームデータ型名:MY- 設定#設定項目名restartPolicy:決して