Mirantis Kubernetes Engine 3.7.0でベアメタルKubernetesやetcd管理などを効率化
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿はMirantisブログ「Streamline bare metal Kubernetes, etcd management, and more with Mirantis Kubernetes Engine 3.7.0」を翻訳・編集したものです。
これまで以上に柔軟でシンプルなKubernetes管理を実現する、Mirantis Kubernetes Engine(以下、MKEと表記)の3.7.0メジャーリリースを発表します。
このリリースは、Kubernetes 1.27.4への移行およびそれに伴うすべての機能強化に留まりません。クラスタを運用する場所を問わず、よりシンプルなKubernetes体験を実現するための私たちのZeroOpsビジョンをさらに進めます。
MKE 3.7.0の新機能と機能強化は以下の通りです:
etcdのイベントをクリーンアップするAPI
Kubernetesは、Node、Pod、コンテナなどのリソースの変更に応じて、大量のイベントオブジェクトを生成します。時間の経過とともに、これらのオブジェクトはetcdキーバリューストアを圧迫し、機能を損なう可能性があります。多くのイベントオブジェクトは安全に破棄できますが、一部のオブジェクトは保持する必要があるかもしれません。そのため、運用者には、メンテナンスをシンプルかつ効率的に、そして選択的に実行する方法が必要です。
MKE 3.7.0ではMKE APIを通して、etcd CLIを使用せずにetcd内のKubernetesイベントオブジェクトを手動でクリーンアップできるようになりました。ユーザーは、すべてのイベントを削除するか、Kubernetesシステムによって定義された特定のTTL(time-to-live)を持つイベントのみを削除するかを指定できます。APIにはdry runパラメータも含まれているので、実際に削除することなく、削除するイベントのリストを確認することができます。
次は、dry runパラメータを使用したAPIへのPOSTの例です:
AUTHTOKEN=$(curl --silent --insecure --data '{"username":"<username>","password":"<password>"}' <https://MKE_HOST/auth/login> | jq --raw-output .auth_token)curl --insecure -H "Authorization: Bearer $AUTHTOKEN" <https://MKE_HOST/api/ucp/etcd/cleanup> --data '{"dryRun": true}' |
運用者はMKE API経由でetcdのクリーンアップ後、引き続きMKE API経由でetcdのデフラグを行い、回復した領域を利用可能な状態にすることができます。
MetalLBの統合
ベアメタル上でクラスタを実行している人々にとって、LoadBalancerタイプのKubernetesサービスを作成するのは難しいかもしれません。チームはしばしば、NodePortサービスのような本番環境に最適でない回避策を使わざるを得ませんでした。
MKE 3.7.0では、アドレス割り当てや外部公開などの機能を備えたオープンソースコンポーネントであるMetalLBを統合することで、ベアメタル上にロードバランサーを作成できるようになりました。MetalLBにより、外部向けサービスの作成はよりシンプルで標準的なものになります。
NGINX Ingress Controllerの拡張
MKEはバージョン3.5.0で外部トラフィックをユーザーのクラスタにルーティングする手段としてNGINX Ingress Controllerを採用しました。現在では、ユーザーはNGINX Ingress Controllerを活用して機能を拡張できるようになりました:
- NGINX Ingress Controllerを使用してTCPおよびUDPサービスを公開し、より多くのプロトコルを選ぶことができます。
- TLS パススルーを使用して、NGINX Ingress Controller を介した暗号化データを復号せずに Web サーバーに渡すことができます。
- MKEのWeb UIでIngress Controllerのデフォルトポートを変更できます。さらに、MKE設定ファイルでHTTPやHTTPSトラフィックを処理するためのコンテナポートや、SSLパススルーなどのオプションを設定することができます。
アップグレード失敗時の自動ロールバック
一般的に本番環境では、ソフトウェアのアップグレードのようなインフラの変更は、事前に定めたメンテナンス時間中に実行するものです。メンテナンス時間には限りがあり、アップグレード作業は割り当てられた時間内に完了しなければいけません。しかし、アップグレードに失敗してしまった場合、リカバリ手順の実施にはさらなる時間を要するでしょう。
MKE 3.7.0では、アップグレードに失敗すると自動的に以前の構成と状態にロールバックします。そのため、ユーザーは問題の解決中に貴重な時間と可用性を失うことはありません。この機能やその他のZeroOps機能の詳細については、別ブログ「Mirantis Kubernetes Engine 3.7.0が実運用でのZeroOpsを実現」をご覧ください。
コアコンポーネントとしてのPrometheusメトリクス
Kubernetesプラットフォームの豊富なメトリクスにより、チームはシステムの健全性をより詳細に監視し、問題をプロアクティブに解決できるようになります。MKE 3.7.0は、次のコンポーネントのPrometheusメトリクスを提供します。
- Kube State Metrics
- Kubernetes Workqueue
- Kubelet
- Kube Proxy
- Kube Controller Manager
- Kube API Server
- Calico
- RethinkDB
- etcd
詳細について
このリリースでのその他の変更点には、SAML proxyのサポート、Multus CNIの使用オプションなどがあります。MKE 3.7.0の変更点と機能強化の完全なリストについては、リリースノート(英語)をご参照ください。
Mirantisについて
Mirantisは、Fortune 1000 企業の 2/3 以上にコンテナやマルチクラウドの導入を加速させ、データセンター運用のストレスを取り除く支援をしています。日本では、クリエーションラインと提携し、Kubernetes、OpenStack、その他のオープンクラウドテクノロジーを、現地語でのサポートやサービスとともに提供しています。Mirantis Kubernetes Engine(旧Docker Enterprise)および関連製品を含む、深い技術的専門知識とベンダーにとらわれない柔軟なプラットフォームが、お客様から選ばれています。
詳細は www.mirantis.comでご確認ください。