実行中の 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 ベースのリリースシステムの設計

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

推薦する

【オープンコンピューティングマスタークラス】オープンコンピューティングにおける「オープン」とは何か

中国では新たなインフラ政策が積極的に推進されており、データセンター、クラウドコンピューティング、ビッ...

一般的な対外貿易促進方法の一覧

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています対外貿易促...

優れた疑似オリジナル作品を書くには?

通常、ウェブサイトのトピックに関して特に豊富な経験を持つウェブマスターだけが、優れたオリジナル作品を...

ウェブサイトのユーザー エクスペリエンス: フィードバック - 小さな機能、大きなデザイン

フィードバック機能は誰もがすでによく知っていますが、この機能は設計プロセス中に無視されることが多く、...

ウェブマスターネットワークニュース:Weiboは今夜上場、QvodはQvodサーバーをシャットダウン

1. 薛曼子:昔はただ楽しみたかっただけだったが、今は妻や子供たちと顔を合わせるのに恥ずかしい「これ...

百度の最近のアップデートを分析する3つの要素

最近の百度のアップグレードは、多くのウェブサイトに大きな影響を与えました。週末にその理由を分析したと...

ウェブサイトのホームページを最適化する方法

ホームページの最適化の重要性は疑う余地がありません。ホームページの重要性が高いだけでなく、ホームペー...

キーワード鄭州ウェブサイト構築の難易度分析

私は多くの最適化ウェブサイトで多くの記事を読みましたが、それらはすべて一般的な理論的な知識であり、誰...

Baidu はどのような最適化手法を考慮していますか?

多くのウェブマスターは、最近の SEO 作業は簡単ではないと言います。百度の継続的な更新と改革により...

racknerd: 米国西海岸のサンノゼ VPS プロモーション、最低 $11.88/年

今月(4月)、racknerd は米国西海岸のサンノゼ データ センター専用の特別プロモーションを開...

zap5-512M メモリ VPS (vmware ベース)/G ポート/月額 7 USD

Zap5 は、2005 年に設立されたカナダのインターネット企業です。主な事業は Web デザインと...

Baiduが毎日更新してより多くの情報を提供する方法

Baiduについてのみ話します - 他のトピックについては後で議論します最近、ゴミステーションをいく...