Kubernetes YAMLファイルの使用

Kubernetes YAMLファイルの使用

01 YAMLファイルの概要

K8S が Pod を起動するとき、YAML ファイルを使用して起動します。今日は、最も一般的に使用される YAML ファイルの形式について説明します。

YAML の構文は JSON の構文と非常に似ています。どちらもキーと値の形式で編成されています。リストや辞書などの一般的なデータ型を表すことができます。サフィックスは通常「.yml」です。次の特徴があります。

1. 大文字と小文字の区別

2. インデントを使用して進行関係を示す

3. インデントにはタブは使用できず、スペースのみ使用できます。

4. インデントのスペースの数は重要ではありません。同じレベルの要素が左に揃っている限り、これはPythonの構文に似ています。

5. コメントを示すには「#」を使用します

6. キー値構造は {} で囲まれ、リスト構造は [] で囲まれます。

YAML---キー値型

a. キー:値の形式を使用して表現します。キーと値の間にはスペースが必要です。スペースがない場合はエラーが報告されます。

b. 階層関係がある場合、次の 2 つの方法で表現できます。

キー:{キー1: 値1,キー2: 値1}

またはキー:
    キー1:値1
    キー2:値2

c. キーと値の形式を表します。値は辞書です。

ウェブサイト:
  ヤム: yaml.org
   ルビー: ruby​​-lang.org
   python: python.org
   Perl: use.perl.org

json形式で表現:
  ウェブサイト:
    YAML: 'yaml.org',
    ルビー: 'ruby-lang.org',
    Python: 'python.org',
    Perl: 'use.perl.org'
   }

YAML---リスト型

- で始まる部分は、次のように配列を示します。

- あ
- ば
- こ

配列として表される: [A,B,C]

もう少し複雑な例を次に示します。

学生:
    -
        id: 1
        名前: 張三
        年齢: 12
    -
        id: 2
        名前: リシ
        年齢: 15

配列として表されます:
生徒:[{id: 1,名前: zhangsan,年齢: 12},{id: 2,名前: lisi,年齢: 15}]

配列内の要素もキーと値の構造の辞書です。

Json と Yaml の比較:

yaml 形式のファイル ノード:
  - 名前: jobE
    タイプ: コマンド
    設定:
      コマンド: echo "これはジョブ E です"
    依存:
       -ジョブD

  - 名前: jobD
    タイプ: コマンド
    設定:
      コマンド: echo "これはジョブ D です"
    依存:
      -ジョブA
      -ジョブB
      -ジョブC


json形式で表現:
{
    「ノード」:[
        {
            "名前":"ジョブE",
            "タイプ":"コマンド",
            「設定」:{
                "command":"echo \"これはジョブ E です\""
            },
            "依存":[
                「ジョブD」
            ]
        },
        {
            "名前":"ジョブD",
            "タイプ":"コマンド",
            「設定」:{
                "command":"echo \"これはジョブ D です\""
            },
            "依存":[
                「ジョブA」、
                「ジョブB」、
                「ジョブC」
            ]
        }
    ]
}

02 K8Sにおけるマスター、ノード、ポッドの関係

マスターアーキテクチャ図:

で:

API サーバーは HTTP REST インターフェイスを提供します。これは、k8s 内のすべてのリソースを追加、削除、変更、およびチェックするための唯一のエントリ ポイントであり、クラスター制御のエントリ ポイントでもあります。

スケジューラは、リソースのスケジュール設定を担当するプロセスです。

コントローラ マネージャーは、すべてのリソース オブジェクトの自動化制御センターです。

Etcdはリソースオブジェクトのデータストレージサービスを提供します

K8S は、マスター ノードとノード ノードのデプロイメント方式を使用してクラスター全体を管理します。マスター ノード、ノード ノード、および Pod の関係は、公式の構造図でより適切に説明されています。

ご覧のとおり、マスターとノードの間には直接通信のやり取りのプロセスがあり、ポッドはノード上にデプロイされます。簡単に言うと、次のようになります。

マスターは固定IPアドレスを持つサーバーです

ノードは固定IPアドレスを持つサーバーです

Pod はノード上のプロセスであり、仮想 IP アドレスを持ちます。この IP アドレスはノード IP アドレスと同じ場合も異なる場合もあります。

ご存知のとおり、Pod には複数のコンテナを含めることができます。コンテナをさらに追加すると、次のようになります。

それらの間の呼び出し関係は単純です:

Pod が作成されると、その情報がマスターの Etcd ストレージに格納されます。次に、Pod の作成に関する情報が K8S によってノードにスケジュールされ、バインドされます。次に、Pod が配置されているノード上の kubelet プロセスが、関連する Docker コンテナのグループにインスタンス化され、起動されます。

上記は、kubernetes YAML ファイルの使用に関する詳細な内容です。kubernetes YAML ファイルの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Kubernetes 環境に単一ノードの Redis データベースをデプロイする方法
  • クラウドネイティブテクノロジーKubernetesスケジューリングユニットポッドの使用の詳細な説明
  • client-go ツールを使用して kubernetes API インターフェースを呼び出す詳細なチュートリアル (v1.17 バージョン)
  • Kubernetes プローブの紹介

<<:  未来志向の総合的なウェブデザイン:プログレッシブエンハンスメント

>>:  Vueのwatch、computed、methodsの違いのまとめ

推薦する

Vue ベースの円形スクロールリスト機能を実装する

注: 親コンテナーに高さと :data='Array' および overfolw:h...

一般的なイベントを処理するための JavaScript の使用に関する詳細な説明

目次1. フォームイベント2. マウスイベント3. キーボードイベント4. 共通イベントメソッド(ウ...

Redmine の Docker インストール手順

イメージをダウンロードします(オプションの手順です。省略した場合は、手順 3 と 4 で自動的にイン...

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

Dockerコンテナを更新、パッケージ化、Alibaba Cloudにアップロードする方法

今回は、実行中のコンテナをイメージにパッケージ化して Alibaba Cloud にアップロードし、...

レスポンシブWebデザイン学習(2) — 動画をレスポンシブにすることはできるのか?

前回のエピソードレビュー:昨日は、ページがさまざまなデバイス サイズにどのように対応するかについて説...

CentOS 上の Docker に Jupyter をインストールしてポートを開く方法

目次jupyterをインストールするDocker ポートマッピングjupyterをインストールするp...

Navicat Premium が MySQL 8.0 に接続してエラー「1251」を報告する問題を解決する方法の分析

長い間何もしていなかった人は、努力をすると一生懸命働いていると思うようになります。 1. 問題Nav...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

CSS3 を使用した SVG パス ストロークのアニメーション化入門チュートリアル

JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...

JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法

目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...

JavaScript はクラス宝くじアプレットを実装します

この記事では、クラス抽選アプレットを実装するためのJavaScriptの具体的なコードを参考までに紹...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...