Customize の簡単な玹介

ノヌト。 翻蚳。: この蚘事は、IT 分野で豊富な経隓を持぀゚ンゞニア、Scott Lowe によっお執筆されたした。圌は 2016 冊の曞籍 (䞻に VMware vSphere) の著者/共著者です。 圌は珟圚、VMware の子䌚瀟である Heptio (XNUMX 幎に買収) で働いおおり、クラりド コンピュヌティングず Kubernetes を専門ずしおいたす。 テキスト自䜓は、テクノロゞを䜿甚した Kubernetes の構成管理に぀いおの簡朔でわかりやすい入門曞ずしお機胜したす。 カスタマむズ、最近 K8 の䞀郚になりたした。

Customize の簡単な玹介

KusTOMize は、ナヌザヌが「元の YAML をそのたたにしお䜿甚可胜なたたにしお、さたざたな目的に合わせおシンプルでテンプレヌトのない YAML ファむルをカスタマむズする」こずを可胜にするツヌルです (説明は次から盎接借甚したした) GitHub 䞊のリポゞトリをカスタマむズする。 KusTOMize は盎接実行するこずも、Kubernetes 1.14 以降では䜿甚するこずもできたす。 kubectl -k その機胜にアクセスするには (ただし、Kubernetes 1.15 の時点では、別個のバむナリは kubectl に組み蟌たれおいる機胜よりも新しいです)。 (ノヌト。 翻蚳。そしお最近のリリヌスでは Kubernetes 1.16 カスタマむズする による支揎 kubeadm ナヌティリティにもありたす。) この投皿では、kusTOMize の基本を読者に玹介したいず思いたす。

最も単玔な圢匏/アプリケヌションでは、kusTOMize は単なるリ゜ヌスのコレクション (Kubernetes オブゞェクト: デプロむメント、サヌビスなどを定矩する YAML ファむル) ず、それらのリ゜ヌスに察しお行う必芁がある倉曎の指瀺のリストです。 make が に含たれる呜什セットを䜿甚するのず同じように、 Makefile、Docker はからの指瀺に基づいおコンテナを構築したす。 Dockerfile、甚途をカスタマむズする kustomization.yaml ナヌザヌがリ゜ヌスのセットに察しおどのような倉曎を加えたいのかに぀いおの指瀺を保存したす。

これがファむルの䟋です kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

ファむル内のすべおのフィヌルドに぀いお説明する぀もりはありたせん。 kustomization.yaml これに぀いおはよく曞かれおいたす ここでですが、具䜓䟋を簡単に説明したす。

  • フィヌルド resources kusTOMize が䜕を (どのリ゜ヌスを) 倉曎するかを瀺したす。 この堎合、ファむル内のリ゜ヌスを怜玢したす。 deployment.yaml О service.yaml ディレクトリ内にありたす (必芁に応じお完党パスたたは盞察パスを指定できたす)。
  • フィヌルド namePrefix kusTOMize に特定のプレフィックスを远加するように指瀺したす (この堎合 - dev-) を属性に name フィヌルドで定矩されたすべおのリ゜ヌス resources。 したがっお、デプロむメントが name 意味のある nginx-deployment、カスタマむズすれば䜜れたす dev-nginx-deployment.
  • フィヌルド namespace kusTOMize に、指定された名前空間をすべおのリ゜ヌスに远加するように指瀺したす。 この堎合、Deployment ず Service は名前空間に分類されたす。 development.
  • 最埌にフィヌルド commonLabels すべおのリ゜ヌスに远加されるラベルのセットが含たれおいたす。 この䟋では、kusTOMize は次の名前のリ゜ヌスにラベルを割り圓おたす。 environment ず意味 development.

ナヌザヌがそうする堎合 kustomize build . ファむルのあるディレクトリ内 kustomization.yaml および必芁なリ゜ヌス (ファむルなど) deployment.yaml О service.yaml)、出力では、指定された倉曎を含むテキストを受け取りたす。 kustomization.yaml.

Customize の簡単な玹介
ノヌト。 翻蚳。: kusTOMize の「単玔な」䜿甚法に関するプロゞェクト ドキュメントの図

倉曎をコミットする必芁がある堎合は、出力をリダむレクトできたす。

kustomize build . > custom-config.yaml

出力デヌタは決定的であるため (同じ入力デヌタから同じ出力結果が生成されたす)、結果をファむルに保存する必芁はありたせん。 代わりに、別のコマンドに盎接枡すこずができたす。

kustomize build . | kubectl apply -f -

カスタマむズ機胜には、次からもアクセスできたす。 kubectl -k (Kubernetes バヌゞョン 1.14 以降)。 ただし、スタンドアロンの kusTOMize パッケヌゞは、統合された kubectl パッケヌゞよりも速く曎新されるこずに泚意しおください (少なくずも Kubernetes 1.15 リリヌスの堎合はこれに圓おはたりたす)。

読者は、「ファむルを盎接線集できるのに、なぜこんなに耇雑になるのですか?」ず疑問に思うかもしれたせん。 玠晎らしい質問です。 私たちの䟋では、確かに 1こずができたす ファむルを倉曎する deployment.yaml О service.yaml 盎接的にはそうなりたすが、他の人のプロゞェクトのフォヌクである堎合はどうなるでしょうか? ファむルを盎接倉曎するず、オリゞン/゜ヌスに倉曎が加えられたずきにフォヌクをリベヌスするこずが (䞍可胜ではないにしおも) 困難になりたす。 kusTOMize を䜿甚するず、これらの倉曎をファむルに䞀元管理できたす。 kustomization.yaml、元のファむルはそのたた残るため、必芁に応じお元のファむルをリベヌスするのが簡単になりたす。

kusTOMize の利点は、より耇雑なナヌスケヌスで明らかになりたす。 䞊の䟋では kustomization.yaml リ゜ヌスは同じディレクトリにありたす。 ただし、kusTOMize は、基本構成ずその倚くのバリアント (別名: ずも呌ばれる) が存圚するナヌスケヌスをサポヌトしたす。 オヌバヌレむ。 たずえば、あるナヌザヌは、䟋ずしお䜿甚した nginx のデプロむメントずサヌビスを取り䞊げ、それらのファむルの開発、ステヌゞング、および運甚バヌゞョン (たたはバリアント) を䜜成したいず考えおいたす。 これを行うには、䞊蚘のオヌバヌレむず、実際には基本的なリ゜ヌス自䜓が必芁です。

オヌバヌレむず基瀎ずなるリ゜ヌスの抂念を説明するため (基本リ゜ヌス)では、ディレクトリが次のような構造になっおいるず仮定したす。

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

ファむル内 base/kustomization.yaml フィヌルドを䜿甚するナヌザヌ resources kusTOMize に含めるリ゜ヌスを宣蚀するだけです。

それぞれのファむル内で overlays/{dev,staging,prod}/kustomization.yaml ナヌザヌはフィヌルドの基本構成を参照したす resources、次に具䜓的な倉曎を瀺したす。 䞎えられた環境。 たずえば、ファむル overlays/dev/kustomization.yaml 前に瀺した䟋のようになりたす。

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

この堎合、ファむルは overlays/prod/kustomization.yaml たったく異なる可胜性がありたす:

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

ナヌザヌが実行するずき kustomize build . カタログにある overlays/dev, kusTOMize は開発オプションを生成したす。 走れば kustomize build . カタログにある overlays/prod - 生産オプションが埗られたす。 これらすべお - オリゞナルに䞀切の倉曎を加えずに ベヌス ファむル、すべお宣蚀的か぀決定的な方法で。 基本構成ずオヌバヌレむ ディレクトリをバヌゞョン管理に盎接コミットできるため、これらのファむルに基づいおい぀でも必芁な構成を再珟できたす。

Customize の簡単な玹介
ノヌト。 翻蚳。: kusTOMize でのオヌバヌレむの䜿甚に関するプロゞェクト ドキュメントの図

カスタマむズできる ずっず この蚘事で説明されおいる以䞊の内容です。 ただし、良い導入ずしお圹立぀こずを願っおいたす。

远加リ゜ヌス

kusTOMize に関する優れた蚘事や出版物がたくさんありたす。 特に䟿利だず感じたものをいく぀か玹介したす。

ノヌト。 翻蚳。: ずしお公開されおいるリンクのブロックを掚奚するこずもできたす。 リ゜ヌス このナヌティリティの Web サむトでは、kusTOMize に関する最新レポヌトを含むビデオのコレクションが続きたす。

この資料を改善するための質問や提案がある堎合は、い぀でもフィヌドバックをお埅ちしおいたす。 たでご連絡ください。 Twitter たたは Kubernetes Slack チャネル。 kusTOMize を䜿っおマニフェストを楜しく倉曎しおください。

翻蚳者からの远䌞

私たちのブログもお読みください:

出所 habr.com

コメントを远加したす