Kubernetes章YAML

kubernetesのためのリソースは、YAMLマークアップ言語、自己定義をロードするために使用することができます。

YAMLは(/jæməl/テールラクダラクダと同様に)高度に読み取り可能である、シリアル化形式を表現するために使用されるデータ。YAMLのを含め、他の言語への参照:C、PythonやPerlの、およびXMLで、電子メールのデータ形式(RFC 2822)からインスピレーションを得ます。2001年にクラーク・エヴァンスは、[1]、加えてIngyが共同デザイナーネットドットとオレンベン・キキが、この言語[2]である第一言語を発表しました。いくつかの現在のプログラミングやスクリプト言語のサポート(または解決)、この言語がありました。

YAMLは「YAMLはマークアップ言語ではありません」である (YAMLはマークアップ言語ではありません)、再帰的頭字語です。言語の開発では、YAMLは、実際には意味:「もう一つのマークアップ言語」(まだマークアップ言語)[3]が、データセンターなどの言語を強調するためではなく、マークアップ言語として名前を変更した逆略語で、焦点を当てます。

使用YAMLは、あなたに含むのいくつかの利点を与えるK8Sを定義するために使用されます。

  • コンビニ:あなたは、もはやコマンドを実行するには、コマンドラインパラメータの多くを追加する必要があります。
  • 保守性:YAMLファイルは、ソースコントロールすることができ、あなたはすべての操作を追跡することができます
  • 柔軟性:あなたはYAMLで、コマンドライン構造よりも複雑なを作成することができます

YAMLはJSONのスーパーセットである、それは任意の有効なJSONファイルは、有効なYAMLファイルであることを意味しています。あなたはJSONを知っているのであれば、一方では、あなたはそれがあったことができます(代わりに誰か他の人の読書の)独自のYAMLを書くつもりです。一方で、それはあなたが例を見つけるためにオンラインで行くことにしようとしていても、残念ながら、あまりそうであるが、彼らは通常、JSONではありませんので、我々はそれに慣れる必要があるかもしれません。しかし、そこにJSONの場合の方が便利かもしれので、あなたはJSONを知って非常に幸せになります。

構造の幸いなことに、YAMLは2種類のみ、あなたが知っておく必要があります。

  • リスト
  • YAMLリストオブジェクトのシーケンスであります
  • 地図
  • マップはあなたのキーの組み合わせをできるようになるには、コンフィギュレーション情報を設定する方が便利なことができます

  

資源ポッドのリストを見ます

[ルート@ KUBE〜]#kubectl GET POD nginxのアプリ-7756966bc9-qrksb -o YAML 
    //これはkubectlランウェイポッドを介して実行され、その後、我々は、手動でその後、ロードするために、構成ファイルを生成し、これに類似したYAMLを定義することができますPOD
apiVersion:V1 種類:ポッド メタデータ: creationTimestamp: "2019-07-16T06:39:02Z" generateName:nginxのアプリ-7756966bc9- ラベル: PODハッシュ鋳型:7756966bc9 RUN:nginxのアプリの 名前:nginxの-APP- qrksb-7756966bc9 名前空間:デフォルト ownerReferences: - apiVersion:アプリ/ V1 blockOwnerDeletion:trueに コントローラー:trueに 種類:さらにreplicaSetの 名前:nginxのアプリ-7756966bc9 UID:51997507-0ad5-4f71-86db-3ad6eff70171 resourceVersion: "603 662" selfLink:/ API / V1 /ネーム/デフォルト/ポッド/ nginxのアプリ-7756966bc9-qrksb UID:7035cfbd-a8f3-45a9-933c-4ce1cef45183 仕様: コンテナ: -イメージ:nginxの:高山 imagePullPolicy:IfNotPresentの 名前:nginxのアプリの ポート: - containerPort:80 プロトコル:TCPの リソース:{} terminationMessagePath:は/ dev /終了ログ terminationMessagePolicy:ファイル volumeMounts: - MOUNTPATH:/var/run/secrets/kubernetes.io/serviceaccount 名前:デフォルト・トークンbsthbの 読み取り専用:真 dnsPolicy:ClusterFirst enableServiceLinks:真の のnodeName:kube.node1 優先順位:0 restartPolicy:常に schedulerName:デフォルトスケジューラ SecurityContextが:{} serviceAccount:デフォルト serviceAccountName:デフォルト terminationGracePeriodSeconds:30 tolerations: -効果:NOEXECUTEの キー:node.kubernetes.io/not-ready オペレータは:存在する 300:tolerationSeconds -効果: NOEXECUTE キー:node.kubernetes.io/unreachable オペレーターは:存在する 300:tolerationSeconds :ボリューム 名- :デフォルト・トークンbsthb 秘密: DEFAULTMODE:420 secretName:デフォルト・トークンbsthbの ステータス: 条件: - lastProbeTime:nullの lastTransitionTime: "2019-07-16T06:39:02Z" 状態: "真" タイプ:初期化 - lastProbeTime:nullの lastTransitionTime: "2019-07-16T06:39:36Z" 状態: "真" のタイプ:レディ - lastProbeTime:nullの lastTransitionTime: "2019-07-16T06:39:36Z" 状態: "真" タイプ:ContainersReady - lastProbeTime:nullの lastTransitionTime: "2019-07-16T06:39:02Z" 状態: "真" のタイプ:PodScheduled containerStatuses: - ContainerIDの:ドッカ:// 6f50a8038d1f9b484c3af46fa21ef0bdce963b95c4f7f5980302bc70ca46eea6 画像:nginxの:高山 IMAGEID:ドッキングウィンドウ-pullable:// nginxの@ SHA256:17bd1698318e9c0f9ba2c5ed49f53d690684dab7fe3e8019b855c352528d57be lastStateを:{} 名前:nginxのアプリ 準備:真 RESTARTCOUNT:0 状態: ランニング: startedAt: "2019-07-16T06:39:36Z" 次のhostIP:10.2.61.22 フェーズ:実行 podIP:10.244.2.7 qosClass:にBestEffort のstartTime: "2019-07-16T06:39:02Z" [ルート@のKUBE〜]#

  

我々の分析では、YAMLフォーマットのために行われます。

#mapsキーである|値の組み合わせ、リストはダッシュキー[引数、引数、複数の項目の組み合わせ]である-初めに()
apiVersion://地図V1の 種類://ポッド地図 メタデータ:       名前:// RSSサイト地図 ラベル: アプリケーション:ウェブ/地図 スペック://地図 コンテナ://リスト名 -名:フロントエンド//子リストのパラメータが地図です 画像:Nginxは// Listパラメータサブキーは、マップのある ポート: - containerPort:80 //リストのパラメータは地図サブキー -名前:RSSリーダーの 画像:nickchase / RSS-PHP-Nginxは:V1 ポート: - containerPort:88

  

単純なファイルYAMLを作成します。

ルートの@ KUBEテスト]#猫ポッド-demo.yaml 
apiVersion:v1の
種類:ポッドの
メタデータ:
   名前:ポッドテスト
   名前空間:デフォルト
   のラベル:
     アプリ:myappの
     ティア:フロントエンドの
仕様:
   コンテナ:
     -名前:MyTestという
       イメージ:nginxの:最新の
            
[ルートの@ KUBEテスト]#
[ルート@ KUBEテスト]#のkubectl -fポッド-demo.yaml作成 
作成したポッド/ポッドテストを
[ルート@のKUBEテスト]#kubectl GETポッド
NAME READYステータスが再起動しAGEの
busy1-78c9f4b47-pm2qx 0/1 CrashLoopBackOff 22百メートル
busy2- 0 2d23h実行7f9dbf96d6-2d778 1/1 
busy3-9877c76bf-ts5rl 1/1ランニング0 2d23h 
nginxの-7bb7cd8db5-6sgvp 1/1実行0 3D 
ContainerCreating nginxの-APP-54c844949f-6zlmr 0/1 0 41H 
nginxの-APP-54c844949f- 0 2D実行n82d6 1/1  
nginxのアプリ-54c844949f-xmkb8 1/1 0 2Dを実行します
nginxのアプリ-7756966bc9-qrksb 1/1 0 2d2hを実行します
ポッド・テスト0/1 ContainerCreating 0 1S 
[ルート@のKUBEテスト]#

  

[ルート@のKUBEテスト]#のkubectlはポッドポッドテスト記述
名:ポッド・テスト・
ネーム:デフォルトの
優先度:0 
ノード:kube.node1 / 10.2.61.22 
開始時間:木、2019年7月18日16時44分23秒0800 
ラベル:アプリ= myappの
              ティア=フロントエンド
注釈:<なし> 
ステータス:実行
IP:10.244.2.12 
コンテナ:
  MyTestに:
    コンテナID:ドッキングウィンドウ:// 4e40fc5b6cae440881cea707b79c2d17692c47d75df69a571fa0e7d57dff5e3aの
    画像:nginxの:最新
    画像ID:ドッキングウィンドウ-pullable:// nginxの@ SHA256:b4b9b3eee194703fc2fa8afa5b7510c77ae70cfba567af1376a573a967c03dbb 
    ポート:<なし>
    ポートホスト:<なし> 
のQoSクラス:にBestEffort
    状態:実行するには、
      開始:木、2019年7月18日16時44分46秒0800は
    レディ:真の
    再起動が数:0 
    環境:<なし> 
    マウント:
      デフォルト・トークンbsthbから/var/run/secrets/kubernetes.io/serviceaccountを( RO)
条件:
  タイプステータス
  初期化トゥルー
  レディ真
  ContainersReady真は、
  真PodScheduled 
:ボリュームの
  デフォルト・トークンbsthb:
    種類:シークレット(秘密)によって移入ボリューム
    SecretNameを:デフォルト・トークンbsthb 
    オプション:偽
ノードセレクタ:<なし> 
Tolerations:300S用node.kubernetes.io/not-ready:NoExecute 
                 300Sのためのnode.kubernetes.io/unreachable:NoExecute 
イベント:
  タイプの理由年齢メッセージから
  ---- ------ ---- ---- ------- 
  通常のスケジュール62Sのデフォルトのスケジューラに成功割り当てられたデフォルト/ポッド-テストはkube.node1する
  ノーマル引っ張る61S kubelet、kube.node1画像引っ張る「nginxのを:最新の」
  ノーマルプル40代をkubelet、首尾よく引っ張っkube.node1画像"nginxの:最新の" 
  ノーマル作成さ40代kubelet、kube.node1作成したコンテナのMyTest 
  ノーマル開始39S kubelet、kube.node1開始コンテナのMyTest
[ルート@ KUBEテスト]# 

  

 

[ルート@ KUBE〜]#のkubectl API-バージョン
admissionregistration.k8s.io/v1beta1の
apiextensions.k8s.io/v1beta1 
apiregistration.k8s.io/v1の
apiregistration.k8s.io/v1beta1の
アプリケーション/ V1の
アプリケーション/ v1beta1の
アプリケーション/ v1beta2の
認証。 k8s.io/v1 
authentication.k8s.io/v1beta1 
authorization.k8s.io/v1 
authorization.k8s.io/v1beta1 
自動スケーリング/ v1の
自動スケーリング/ v2beta1 
自動スケーリング/ v2beta2 
バッチ/ V1 
バッチ/ v1beta1の
certificates.k8s.io/v1beta1の
コーディネート。 k8s.io/v1 
coordination.k8s.io/v1beta1の
events.k8s.io/v1beta1の
拡張/ v1beta1の
networking.k8s.io/v1の
networking.k8s.io/v1beta1
node.k8s.io/v1beta1の
/ v1beta1ポリシー
rbac.authorization.k8s.io/v1の
rbac.authorization.k8s.io/v1beta1の
scheduling.k8s.io/v1の
scheduling.k8s.io/v1beta1の
storage.k8s.io/v1の
ストレージ.k8s.io / v1beta1 
V1 
[ルート@のKUBE〜]#のkubectlポッドを説明
KIND:ポッド
VERSION:V1の

説明:
     ポッドがホスト上で実行することができ、容器のコレクションですが。このリソースがされ
     、クライアントによって作成され、ホストに予定さ。

FIELDS:
   apiVersion <ストリング> 
     APIVersionは、この表現のバージョンスキーマ定義
     オブジェクト。サーバは、最新の内部に認識スキーマを変換する必要があります
     値は、と認識されていない値を拒否することができます。さらに詳しい情報:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#resources 

   種類の<string> 
     種類は、このオブジェクトは、RESTリソース表す文字列値で
     表します。サーバーは、クライアントが送信するエンドポイントからこれを推論することができる
     に要求を。更新することはできません。キャメルケースで。さらに詳しい情報:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds 

   メタデータの<Object> 
     スタンダード・オブジェクトのメタデータ。さらに詳しい情報:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata 

   スペック<オブジェクト> 
     ポッドの所望の動作の仕様。さらに詳しい情報:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status 

   状況<オブジェクト> 
     ポッドの最近観察状態。このデータは最新ではないかもしれません。
     システムによって作成。読み取り専用。さらに詳しい情報:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status 

[ルート@のKUBE〜]#

  

 

 

おすすめ

転載: www.cnblogs.com/zy09/p/11208338.html