実行中の Kubernetes ポッドにパッチを適用するにはどうすればよいでしょうか?

実行中の Kubernetes ポッドにパッチを適用するにはどうすればよいでしょうか?

[51CTO.com クイック翻訳] Kubernetes は、市場で最も強力で柔軟なコンテナ クラスター マネージャーの 1 つです。このツールを使えば、ほぼ何でもできます。すでにデプロイされているポッドにパッチを適用することは、Kubernetes が提供する機能の 1 つです。

たとえば、Nginx コンテナを含むポッドをデプロイしたが、それに Regis コンテナと MySQL コンテナを追加したいとします。すべてを破棄して構成ファイルを再調整する代わりに、パッチ コマンドを実行して新しいコンテナーを追加するだけです。

やり方は次のとおりです。この例は単純ですが、 kubectl コマンドで patch オプションを使用する方法を示しています。

あなたは何が必要ですか?

これを機能させるために必要なのは、実行中の Kubernetes クラスターだけです。

クラスターをデプロイする方法については、次のチュートリアルをご覧ください: Ubuntu サーバーに Kubernetes クラスターをデプロイする方法クラスターが起動したら、次のステップに進むことができます。

Kubernetes サービスをデプロイするにはどうすればいいですか?

最初に行う必要があるのは、Kubernetes サービスをデプロイすることです。次のコマンドで新しいディレクトリを作成します。

  1. mkdir ~/patch-demo

次のコマンドを使用して新しいディレクトリに移動します。

  1. cd ~/patch-demo

次に、基本テンプレートと 2 つのレプリカを含む Nginx を含むサービス デプロイメントの YAML ファイルを作成します。次のコマンドを使用してファイルを作成します。

  1. ナノデプロイメントパッチ.yaml

そのファイルに次の内容を貼り付けます。

  1. apiVersion: apps/v1 # 1.9.0 より前のバージョンの場合は、apps/v1beta2 を使用します
  2. 種類: デプロイメント
  3. メタデータ:
  4. 名前: パッチデモ
  5. 仕様:
  6. レプリカ: 2
  7. セレクタ:
  8. 一致ラベル:
  9. アプリ: nginx
  10. テンプレート:
  11. メタデータ:
  12. ラベル:
  13. アプリ: nginx
  14. 仕様:
  15. コンテナ:
  16. -名前: patch-demo-ctr
  17. 画像: nginx
  18. 許容範囲:
  19. - 効果: NoSchedule
  20. キー:専用
  21. 値: テストチーム

ファイルを保存して閉じます。次のコマンドを使用して構成をデプロイします。

  1. kubectl apply -f デプロイメントパッチ.yaml

次のコマンドを実行すると、ポッドが実行中であることがわかります。

  1. kubectl ポッドを取得する

patch-demo パッチは実行中としてリストされます (図 A)。


図 A. Kubernetes パッチ デモ ポッドが稼働しています。

実行中のサービスにパッチを適用するにはどうすればいいですか?

ここで、Redis コンテナをポッドに追加する戦略的なマージ パッチ ファイルを作成します。次のコマンドを使用してパッチ ファイルを作成します。

  1. ナノパッチファイル.yaml

そのファイルに次の内容を貼り付けます。

  1. 仕様:
  2. テンプレート:
  3. 仕様:
  4. コンテナ:
  5. -名前: patch-demo-ctr-2
  6. 画像: redis

ファイルを保存して閉じます。

実行中のサービスにパッチを適用するには、次のコマンドを実行します。

  1. kubectl パッチ デプロイメント patch-demo --patch "$(cat patch-file.yaml)"  

この場合、デプロイメントによって古いポッドが終了し、新しいポッドが作成されます。

この手順を続行できます。たとえば、MySQL を追加するとします。次のコマンドで別のパッチ ファイルを作成します。

  1. ナノ パッチファイル 2.yaml

そのファイルに次の内容を貼り付けます。

  1. 仕様:
  2. テンプレート:
  3. 仕様:
  4. コンテナ:
  5. -名前: patch-demo-ctr-3
  6. 画像: mysql

ファイルを保存して閉じ、次のようにパッチ コマンドを再実行します。

  1. kubectl パッチ デプロイメント patch-demo --patch "$(cat patch-file-2.yaml)"  

このコマンドを実行すると:

  1. kubectl デプロイメント パッチ デモ--output yamlを取得します。  

Nginx、Redis、MySQL がすべてポッド内にあることがわかります (図 B)。

図 B. Kubernetes ポッドに 3 つのイメージがすべて含まれるようになりました。

このパッチ適用システムでは、ポッドのレプリカの数を増やすことはできません。これを行うには、次のように scale コマンドを使用します。

  1. kubectl スケール--replicas=4 デプロイメント パッチデモ 

または、次のように 0 にスケールダウンしてポッドを削除することもできます。

  1. kubectl スケール--replicas=0 デプロイメント パッチデモ 

実行中の Kubernetes サービスにパッチを適用する手順はこれだけです。このチュートリアルは非常に基本的なものですが、patch コマンドを使用すると、ほぼ何でもできることがわかります。

元のタイトル: 実行中の Kubernetes ポッドにパッチを適用する方法、著者: Jack Wallen

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  Kubernetes ベースのリリースシステムの設計

>>:  上司から分散ロックについて質問されたのですが、結果は悲惨なものでした...

推薦する

大学のクラウドデスクトップを「正しく開く方法」は何ですか?

大学は常に最先端技術を最初に応用する重要な場所であり、クラウド デスクトップ テクノロジーも例外では...

VMware は、マルチクラウドの機会を捉え、無限の可能性を引き出すパートナーをサポートします。

エンタープライズ ソフトウェアにおける世界有数のイノベーターである VMware (NYSE: VM...

検索エンジンアルゴリズム開発動向の分析

百度の現在の国内検索エンジン市場における独占状態は、短期間で覆される可能性は低い。しかし、アルゴリズ...

インターネットモデルは改善し続けている:ライト・ウェイク

インターネットは常に進化しており、もちろんインターネット モデルも常に進化しています。ここで、Cra...

Linuxシステムの仮想化モデルと障害

[[436822]] x86 CPU仮想化1974 年の論文「仮想化可能な第 3 世代アーキテクチャ...

SEO ロングテール記事: ロングテールキーワードの 3 つのメリット

「外部リンクが王様、コンテンツが王様」という言葉は、SEO 業界では長い間言われてきました。この発言...

フラッシュセールウェブサイトにおけるユーザーロイヤルティを低下させる3つの要因

お客様は神様です。当社の Web サイトにアクセスするすべてのユーザーは、お客様とみなすことができま...

張一鳴は第二の点心を作ることができるか?

数日前、Douyinが「割引グループ購入」機能をテストしているというニュースがありました。これはMe...

「百度地震」から青大根アルゴリズム2.0まで、百度のアルゴリズムの今後のアップデート方向を分析

昨年6月の「百度地震」から今年の「青大根アルゴリズム2.0」まで、百度はいくつかの大きなアップデート...

SEO は死んでおり、一部の SEO 手法は時代遅れになっています。

先ほど A5 で見た SEO は死んだという記事に関して、私はそうは思いません。私の5つのステーショ...

テンセントクラウド:「デジタルエコシステム」特別「クラウドサーバー」フラッシュセール、最低99元/年

テンセントのグローバルデジタルエコシステム特別イベントが始まりました。合計5つのプロモーションがあり...

ウェブサイトの収益性を向上させる際に見落とされがちないくつかの問題

ウェブサイトを運営するのは本当に疲れる仕事ですが、ウェブサイトがうまく運営されていれば、簡単にお金を...

新しいサイトが含まれない要因と解決策

多くのウェブマスターは、この厄介な問題に遭遇します。なぜ私の新しいサイトはいつも含まれないのでしょう...

知っておくべきパブリッククラウドの最適な帰還ユースケース

クラウド コンピューティングを導入すると、課金、管理、コンプライアンスの問題が発生する可能性があり、...