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

推薦する

WeChatアプレットの手動および自動追跡の実装の詳細説明(Taro)

どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

Linux 構成 SSH パスワードフリーログイン「ssh-keygen」の基本的な使い方

目次1 SSHとは何か2 SSHパスワードフリーログインを設定する2.1 必要なソフトウェアのインス...

Swiper+echartsは複数のダッシュボードの左右スクロール効果を実現します

この記事では、ダッシュボードの左右スクロール効果を実現するためのスワイパー+echartsの具体的な...

Docker データボリュームの一般的な操作コードの例

開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデー...

nginx+FastDFS を使ってファイル管理システムを段階的に構築する

目次1. FastDFS の概要1. はじめに2. FastDFSストレージ戦略3. FastDFS...

MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...

Vue における Vue.use() の原理と基本的な使用法

目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...

Web プロジェクト開発 JS 機能の手ぶれ補正とスロットリングのサンプル コード

目次安定導入手ぶれ補正シーン1(マウスの動き込み)手ぶれ補正シーン2(キーボードのキー)関数のスロッ...

一般的なCSS3アニメーションの実装方法

1. 何ですかCSS アニメーションは、CSS を使用して拡張マークアップ言語 (XML) 要素をア...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

Xiaomi公式サイトの登録・ログイン機能を模倣するJavaScript

目次まずページレイアウトを構築する必要がありますJS関数1 JS関数2 JS関数3 JS関数4効果図...

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。 1 pip listの下に...

Win10にCentOS7仮想マシンをインストールする

1. VMware Workstation 64バージョンをダウンロードするhttps://www....

Intelli Idea で Tomcat 設定が見つからない問題の解決方法

2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...