Kubernetes用のWireguardとユーザーフレンドリーなGUI



[WireGuard]への愛情をもう一度述べて、すぐに統合されることを願っていますか?コードは完璧ではないかもしれませんが、私はそれをざっと読みました。OpenVPNとIPSecである恐怖と比較すると、それは芸術作品です。



LinuxカーネルメーリングリストのLinusTorvalds


多くの人がすでにワイヤーガードについて聞いたことがあると思います。一部の人はそれが生きているとさえ感じました。パフォーマンスと構成のしやすさの両方の点で、本番環境では非常に気に入りました。はい、IPSECVPNのOpenVPNやXFRM + StrongSwanのように、あらゆる場面で100万の不思議な構成はありません。これは、コードと構成の両方でシンプルかつ簡潔です。まだ大胆で不器用になることはありません。要するに、「レガシーを燃やし、すべてを正しく書く」シナリオのそのような前向きなバージョン。



「Wireguardのインストール方法」という別のガイドを書くのではなく、いくつかの便利なユーティリティを共有することにしました。私の好みで非常に成功したGUIを備えたものもあります。これは、多くのユーザーがいるサービスに適しています。異なるKubernetesクラスター内のノード間の通信、生成用のいくつかのWeb GUI、およびいくつかの有用なリソースのためのこのVPNの使用を分析します。



なぜそれが必要なのですか?



重要な質問。彼の最もクールな点の1つは、彼が非常に生産的であることです。ほとんどの場合、同等のCPU負荷で、待ち時間が短くなり、スループットが高くなります。ピーク負荷を考慮して、費やしたリソースの料金を支払うか、仮想マシンのレンタルを計画している場合、このタイプのVPNはコストも節約します。個々のノード間のオープンネットワークを介してトラフィックを駆動することがなぜ悪いのかを説明する必要はないと思います。





出典: www.wireguard.com/performance



さらに、Linux 5.6以降のカーネルに含まれていることは注目に値します。また、今年の春以降、Androidカーネルのメインブランチにも含まれているため、携帯電話で優れたエネルギー効率が得られます。 ..。とはいえ、彼は以前は特に電話のバッテリーに負担をかけていなかったと言わざるを得ません。



Kilo-Kubernetesのワイヤーガード



多くの場合、平均よりも大きな企業では、いくつかの異なるクラウドを使用する必要がある状況があります。理由は異なります-耐障害性、その地域での良好な存在、および低いping。価格が特定の製品のものである場合があります。たとえば、独自のサーバーでフロントエンドとメインロジックを実行し、GPUを大量に消費するタスクをAWSインスタンスにアウトソーシングできます。



使い方? Kiloでは、すべてのノードにワイヤーガードカーネルモジュールが必要です。 5.6より新しいカーネルを使用している場合、モジュールはすでにメインブランチにあり、何もファイナライズする必要はありません。次に、キロエージェント「kg」がクラスター内の各ノードで実行され、秘密鍵と公開鍵を設定してVPNを設定します。別々のリージョン間のトラフィックルーティングルールも自動的に構成されます。 Kiloは、Flannelなどのクラスター用の他のネットワーキングソリューションと連携して動作することもできます。同時に、キロは地域間の通信を提供し、フランネルは1つの場所内のトラフィックを処理します。

ネットワークトポロジを構築する場合、それはに依存している topology.kubernetes.io/regionていますが、手動で領域をマークすることができます。



要件:



  • カーネルの新しい5.6または個別のワイヤーガードモジュール
  • ノード間の直接接続を整理するための、ノードのホワイトIP。




詳細については、昨年ソウルで開催されたKubernetesフォーラムでの開発者向け講演とドキュメントを参照してください



wg-gen-web



画像

「さらに別の構成ジェネレーター」と呼ばれるもの。しかし、一緒に仕事をするのはとても楽しいです。このアプローチの主な違いは、作成者が実行中のサービスの構成をその場で編集しようとせず、ルールを生成するための便利なGUIのみを提供することです。次に、自分の好みに合わせて構成の更新を実装します。



主な機能-モバイルクライアントに便利なQRコードを生成し、クライアントのメールに接続するために必要なすべてのデータを送信します。もちろん、ドッキングされています。 リポジトリはこちらです。



デプロイは非常に簡単です。



docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

      
      





サブスペース





多くのクライアントデバイスで簡単に作業できるもう1つのGUI。

主な特徴:



  1. SAMLを使用したシングルサインオン。あなたはGoogleアカウントの下に行くことができます。
  2. 数回のクリックでデバイスを追加および削除します
  3. デバイスごとに個別の構成を生成します。もちろん、QRコードです。
  4. 箱から出してHTTPSを暗号化し、ポート443に自動リダイレクトしましょう


VPSへの展開は簡単です。ちなみに、あります。スリープ可能)

ワイヤーガードがサーバーにインストールされ、ポートが開いている必要があります:80 / tcp、443 / tcp、51820 / udp(WireGuard)。この場合、標準のdnsmasqはコンテナーで起動されるため、削除する必要があります。

次に、すべてがかなり典型的です。-envSUBSPACE_HTTP_HOSTをドメインに置き換えるだけです。

# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.
$ mkdir /data

docker create \
    --name subspace \
    --restart always \
    --network host \
    --cap-add NET_ADMIN \
    --volume /usr/bin/wg:/usr/bin/wg \
    --volume /data:/data \
    --env SUBSPACE_HTTP_HOST=subspace.example.com \
    subspacecloud/subspace:latest

$ sudo docker start subspace

      
      





リポジトリはこちらです。



結論の代わりに



このVPNをまだ試したことがない場合は、強くお勧めします。多くの場合、彼はそれほど強力ではないハードウェアを復活させることができます。これは、以前は負荷がかかった状態では対処できませんでした。設定もそれほど難しくありません。確かに、その主なタスクは、まだまっすぐな、事前構成されたトンネルをパンチすることです。彼は通常の意味で動的構成を利用できません。シンプルさとパフォーマンスのために支払う代償。

ちなみに、まだわからない場合は、MikroTikのRouterOS7.1のベータ版にwireguardがすでに含まれてます。今すぐお試しいただけますが、私の気持ちによると、まだ湿っています。





さて、伝統的に、私はあなたを私たちのVPSにワイヤーガード展開することを試みるように誘うことができます ..。たとえば、スイスやオランダへのホームネットワークトラフィックの一部をラップします。私たちは多くの異なる場所を持っており、価格設定ポリシーはそのようなタスクに非常に快適です。



私が言ったように、Wireguardは非常にリソース効率が高いので、1コアと1 GBのRAMを備えた最小限の構成で、多数のクライアントをサポートするのに十分です。価格も非常に人道的です:














All Articles