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の違いのまとめ

推薦する

Nginx リバース プロキシ構成の完全なプロセス記録

1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...

Centos7.x での Nginx のインストール、SSL 設定、一般的なコマンドの詳細な説明

1. インストールyumを使用してインストールする ##yum nginx を自動的にインストールす...

フックを使用して React コンポーネントを書くときに注意すべき 5 つの点

目次01. レンダリングが不要な場合はuseStateを使用する02. リンクの代わりにrouter...

SSHトンネルを使用してMySQLサーバーに接続する方法

序文場合によっては、データベースのイントラネット アドレスしか知らず、イントラネット経由で接続できな...

Tomcat プロジェクトを展開する一般的な方法のいくつか [テスト済み]

1 / Webプロジェクトファイルをwebappsディレクトリに直接コピーするこれは最も一般的に使...

Gitlab実践チュートリアルでは、関連する設定操作にgit configを使用します。

この記事では、実際に発生した問題をもとに、git の設定に関する内容を紹介します。コマンド: git...

MySQLの一般的なバックアップコマンドとシェルバックアップスクリプトの共有

複数のデータベースをバックアップするには、次のコマンドを使用できます。 mysqldump -uro...

Docker の 4 つのネットワーク タイプの主な例

4 つのネットワーク タイプ:なし: コンテナのネットワーク機能を一切設定しません。--net=no...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

ウェブ クラスターの Docker Stack 展開方法の手順

Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...

テーブルを作成するための MySQL SQL ステートメントの詳細な概要

mysql テーブル作成 SQL ステートメントMySQL テーブルを作成するための一般的な SQL...

MySQLは文字列関数のSQL文をインターセプトします

1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...

CocosCreatorでゲームコントローラーを使用する方法

目次1. シーンレイアウト2. ハンドルリスナーを追加する1. イベントの変更を監視する2. 座標設...

CSS3 の display:grid、グリッドレイアウトの紹介

1. グリッドレイアウト(グリッド): Web ページをグリッドに分割し、さまざまなグリッドを組み合...