Linkerd の最新バージョン 2.12 がリリースされました。この大規模なバージョンでは、Linkerd にルーティングベースのポリシーが導入され、ユーザーは完全にゼロ トラスト方式で HTTP ルーティングベースの承認ポリシーを定義および実行できるようになります。これらのポリシーは、Linkerd の強力なワークロード ID に基づいて構築され、相互 TLS によって保護され、Kubernetes の新しい Gateway API の型を使用して構成されます。 変更履歴Linkerd 2.12 は、Gateway API をコア構成メカニズムとして採用するための第一歩です。この API はまだサービス メッシュのユース ケースには最適ではありませんが、このリリースの強力な出発点となります。さらに重要なのは、Gateway API 上に構築することで、新しい機能を導入しても Linkerd 固有の構成オブジェクトの数を最小限に抑えることができることです。これは、Kubernetes 向けの最もシンプルで軽量なサービス メッシュを作成するという私たちの目標の重要な部分です。さらに、バージョン 2.12 では、Linkerd が Apache スタイルのリクエスト ログを生成できるようにする待望の機能であるアクセス ログが導入されました。 iptables-nft のサポートが追加され、その他多くの改善とパフォーマンス強化が導入されています。 ルートごとの戦略Linkerd の新しいルートごとのポリシーは、既存のポートベースのポリシーを拡張して、サービスが相互に通信する方法をより細かく制御できるようにします。これらのポリシーは、暗号化だけでなく、強力なワークロード ID と明確な承認も必要とするゼロトラスト セキュリティ アプローチを採用している組織向けに設計されています。
ヘルス プローブと準備プローブは許可なしに通過する必要があるため、Kubernetes ではデフォルトで拒否する構成が問題になる可能性があります。 Linkerd 2.12 では、ヘルス プローブと準備プローブがデフォルトで承認されるようになりましたが、他のアプリケーション エンドポイントをロックダウンしながら明示的に承認することもできます。 ゲートウェイAPILinkerd 2.12 は、Kubernetes Gateway API のサポートに向けた第一歩を提供します。 Gateway API はもともと、Kubernetes の長年使用されてきた Ingress リソースのより豊富で柔軟な代替として設計されましたが、サービス メッシュ トラフィックを記述するための優れた基盤を提供し、Linkerd が増分構成を最小限に抑えることを可能にします。 Linkerd 2.12 では、Linkerd は、Linkerd のルートベースのポリシーを構成するための Gateway API の部分的な実装を提供します。この方法により、Linkerd にとって意味をなさない仕様の部分を実装することなく、Gateway API の使用を開始できます。 Gateway API が進化するにつれて、Linkerd のニーズを徐々に満たすようになります。 アクセスログLinkerd 2.12 ではアクセス ログも導入され、プロキシが Apache スタイルのリクエスト ログを出力できるようになりました。この機能は、パフォーマンスとリソース使用率の理由から(特にトラフィック量の多いワークロードの場合)、デフォルトではオフになっていますが、必要に応じて簡単に有効にすることができます。 その他の更新Linkerd 2.12 には、他にも次のような数多くの改善、パフォーマンス強化、バグ修正が含まれています。
アップグレードここで、クラスター内の Linkerd を最新バージョン 2.12 にアップグレードします。 まず、次のコマンドを実行して Linkerd CLI ツールを更新する必要があります。 $ curl -- proto '=https' -- tlsv1 .2 - sSfL https://run.linkerd.io/install |シュ これにより、ローカル CLI が最新バージョンにアップグレードされます。もちろん、Linkerd のリリース ページから、対応するプラットフォームの CLI インストール パッケージを直接ダウンロードすることもできます。 $ wget https://github.91chi.fun/https://github.com//linkerd/linkerd2/releases/download/stable-2.12.0/linkerd2-cli-stable-2.12.0-darwin-arm64 CLI が正しくインストールされ、実行されていることを確認します。 $ linkerd バージョン CLI アップグレードが成功したことがわかります。コントロールプレーンはまだアップグレードされていないため、現在のバージョン 2.11.1 が引き続き表示されます。 これで、Kubernetes クラスター上の Linkerd コントロール プレーンをアップグレードできます。心配しないでください。既存のデータ プレーンは、コントロール プレーンの更新されたバージョンで引き続き実行され、メッシュ サービスが失敗することはありません。
Linkerd SMI 拡張CLI を使用して Linkerd 2.11.x をインストールし、TrafficSplit CRD を使用している場合は、TS CRD が不足していることに注意する必要があります。この CRD を使用していない場合は、この通知を無視できます。 TrafficSplit CRD は Linkerd 2.12.0 には同梱されなくなり、代わりに Linkerd SMI 拡張機能によって提供されるようになりました。 まず、リリース ページから対応する実行可能パッケージをダウンロードします。 $ wget https://github.91chi.fun/https://github.com//linkerd/linkerd-smi/releases/download/v0.2.0/linkerd-smi-0.2.0-darwin-arm64 Linkerd SMI は CLI ツール経由でインストールすることもできます。この拡張機能には、SMI リソースをネイティブ Linkerd リソースに変換する SMI アダプターが含まれています。 $ linkerd smi をインストール| kubectl を適用-f - あるいは、次の Helm メソッドを使用して Linkerd SMI 拡張機能をインストールすることもできます。ただし、拡張機能をインストールする前に、linkerd-smi チャートがそれを取得できるように、CRD に次の注釈とタグを追加する必要があります。 $ kubectl annotate -- crd / trafficsplits を上書きします。 スプリット。 smi スペック。 io \ 最後に、通常の CLI アップグレード手順を続行できますが、TrafficSplit CRD が削除されないように、linkerd upgrade --crds の出力を適用するときに --prune フラグを使用しないでください。 アップグレード次に、linkerd アップグレード コマンドを使用してコントロール プレーンを直接アップグレードします。これにより、コントロール プレーンの既存の構成と mTLS がすべて保持されます。 $ kubectl でcrd を取得します| grep リンク 上記の更新コマンドでは --prune フラグを使用していることに注意してください。これにより、新しいバージョンには存在しない以前のバージョンの Linkerd リソースが削除されます。上記では、CRD リソースの新しいバージョンを更新しています。 Gateway API が導入されたため、4 つの新しい CRD が追加されたことがわかります。 $ kubectl でcrd を取得します| grep リンク ただし、新しく追加された Gateway API 関連の CRD は、元の Kubernetes の下に定義されておらず、policy.linkerd.io グループの下にも定義されていることに注意してください。これは、Linkerd もこれらの CRD にいくつかの適応を行ったためです。 次に、次のコマンドを直接使用して、コントロール プレーン リソース オブジェクトを更新します。 $ linkerd アップグレード| \ 次に、このコマンドを再度実行し、クラスター全体の特定のリソースが適切にプルーニングされるようにするために必要な --prune-whitelist フラグをいくつか追加します。 $ linkerd アップグレード| kubectl apply --prune -l linkerd を実行します。 io / コントロールプレーン- ns = linkerd \ アップグレード プロセスが完了したら、チェック コマンドを実行して、すべてがうまくいったかどうかを確認することもできます。 $ linkerd チェック このコマンドは、コントロール プレーンに対して一連のチェックを実行し、コントロール プレーンが適切に機能していることを確認します。 ここで、Linkerd のバージョンを再度確認すると、通常のサーバー バージョンも更新されています。 $ linkerd バージョン その後、データ プレーンをアップグレードできます。これを行う最も簡単な方法は、サービス上でローリング デプロイメントを実行し、プロキシ インジェクターが最新バージョンのプロキシを利用可能になったときに挿入できるようにすることです。 $ kubectl -n < 名前空間> ロールアウト再起動デプロイ 一般的に、コントロール プレーンの安定バージョンはデータ プレーンの以前の安定バージョンと互換性があるため、コントロール プレーンのアップグレード後はいつでもデータ プレーンをアップグレードできますが、1 つの安定バージョンのギャップを超えることは推奨されません。 更新が完了したら、チェック コマンドを使用してデータ プレーンのステータスを確認できます。 $ linkerd チェック--proxy このコマンドは、一連のチェックを通じてデータ プレーンが適切に実行されていることを確認し、古いバージョンのプロキシをまだ実行しているポッドを一覧表示します。その後、実際の状況に応じて対応するポッドをアップグレードできます。 Linkerd Viz 拡張機能注目すべきもう 1 つの点は、viz プラグインです。最新バージョンでは Grafana が組み込まれなくなったため、ここではまずプラグインを直接アンインストールし (プラグインはグリッドのコア機能に影響を与えません)、その後最新バージョンを再インストールします。 $ linkerd viz をインストール| kubectl 削除-f - アンインストール後、再インストールしてください。新しいバージョンには Grafana が組み込まれていないため、再インストール時に --set grafana.url を介して外部 Grafana アドレスを指定できます (クラスター外部のアドレスの場合は、grafana.externalUrl パラメータを介して指定できます)。外部の Prometheus を使用することもできます。 $ linkerd viz install -- set grafana 。 url = grafana : 3000 、 prometheusUrl = http : //prometheus.kube-mon.svc.cluster.local:9090,prometheus.enabled=false | kubectl を適用 -f - 再インストール後、次のポッド リストを確認します。 $ kubectl get pods - n linkerd - viz 外部の Prometheus に接続されており、新しいバージョンには Grafana が組み込まれていないため、Grafana と Prometheus が使用できなくなっていることがわかります。上記で指定した Grafana アドレスは viz と同じ名前空間にあるため、ここで手動でインストールするだけです。
ここでは、以下に示すように、Helm Chart を直接使用して値ファイルをインストールおよびカスタマイズします。 ポッド注釈: 上記の値ファイルでは、Linkerd のプロキシを挿入するために linkerd.io/inject: enabled アノテーションを挿入し、Prometheus データ ソース アドレスも構成する必要があります。 $ helm リポジトリ追加grafana https://grafana.github.io/helm-charts すでに外部 Grafana がある場合は、インストール時に grafana.externalUrl を介して直接指定できます。 $ linkerd viz install -- set grafana 。 外部 URL = http://192.168.0.106:30403、prometheusUrl=http://prometheus.kube-mon.svc.cluster.local:9090、prometheus.enabled=false | kubectl を適用 -f - アップデート後、Linkerd 関連のダッシュボードを外部 Grafana にインポートすることを忘れないでください。これは、Grafana の公式 Web サイト https://grafana.com/orgs/linkerd から入手できます。 たとえば、デプロイメント ダッシュボードをインポートする場合、ID 15475 をインポートするか、JSON ファイルをダウンロードしてインポート用にアップロードすることができます。 インポート後、Viz のダッシュボードを再度確認します。 同様に、ページ上の Grafana アイコンをクリックすると、Grafana ダッシュボード ページに直接ジャンプします。 この時点で、Linkerd のアップグレードは完了です。 |
<<: Linkerd と Ingress-Nginx の組み合わせとサービスへのアクセス制限
>>: クラウドコンピューティングでマルチテナントを実装する方法
Cloudshards はいくつかの強力な VPS プロモーションをリリースしており、きっとお好みの...
多くのウェブマスターは、個人ウェブサイトが包囲網を突破して発展することがいかに難しいかを語っています...
コロクロッシングが買収したブランドである123ystemsは、長い間登場していません。ホストキャット...
セグメント化された業界ウェブサイトは、個人がウェブサイトを構築する方向性の 1 つでした。大規模で包...
Siteground は 19 周年を記念して特別プロモーションを開始し、クラウド ホスティングを ...
8月9日、大手IT市場調査・コンサルティング会社IDCは先日、「中国ビデオクラウド市場追跡、2021...
Baidu の 6.22 および 6.28 アルゴリズム アップグレードの結果、多数の Web サイ...
ウェブサイトのデータは、すべての SEO ウェブマスターが最も関心を持つデータです。私たちは、検索エ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス新しいメディアの急速な発...
Vultr は長い間、大きなプロモーションを行っていませんでした。2018 年 7 月 10 日、V...
個人ブログは、個人の表示プラットフォームです。ポイントツーポイント インターネットの発展に伴い、独自...
[51CTO.com からのオリジナル記事] Huya は、ゲームライブストリーミングを主力事業とす...
Kube APIServer と go-restful のエントリ ポイントの基本を理解したので、A...
LightCloudは現在、フランス、カナダ、韓国、香港のデータセンターでホスティングサービスを運営...
私のような老人にとって、 Pinduoduo を理解するのはまだ少し難しいですが、業界では、Alib...