近年、Kubernetes は多くの人々の注目を集めるようになりました。現実には、Kubernetes が非常に有用であることに気づいている企業もあれば、そうではなく、その過程で傷つき、打撃を受けている企業もあります。私の場合は、ちょうど真ん中です。私も同じようなことをするつもりで、間違いを犯す覚悟はしています。その前に、k8s 上にシンプルな PaaS のようなプラットフォームをデプロイする方法を見てみましょう。 1. 最適なPaaSのようなプラットフォームを見つけるでは、どこから始めましょうか?このようなものを簡単に見つける方法があるはずです。まずは、簡単な DuckDuckGo 検索から始めましょう。 DuckDuckGo検索は役に立たない 明らかに、k8s は PaaS ではありません。 k8s をベースにした PaaS を構築したいのですが、もちろんそれを PaaS として使用するわけではありません。 次に、HackerNewsで検索しました。最初のクエリはデッド記事を見つけます。また、GitHub で素晴らしいリストを見つけました。 https://github.com/ramatsurana/awesome-kubernetes より広範囲に検索した結果、自分のユースケースに適した候補プロジェクトのリストができました。
他にも多くの選択肢があり、そのうちのいくつかは私が試したことがあり、大企業を対象としたものもあります。 2. 私のアプリケーションシナリオQuest Vault では、DigitalOcean ドロップレット上のシンプルな WordPress インストールを使用して、e コマース Web サイトを運営しています。いくつかの簡単な bash スクリプトを実行し、テスト/ステージング サーバーのコピーをローカルで実行することで展開することもできましたが、いくつかの bash スクリプトではなく、業界のテクノロジに基づいたプラットフォームを構築したいと考えました。こうした bash スクリプトを書くのは楽しいですし、独自のデプロイメント スタックを持つことも簡単ですが、Quest Vault に「贅沢」なもの、つまり、使用しているツールについて心配する必要がない標準的なものがあればいいのにと思います。 https://questvault.net/ 今、私はオフィスで k3s を実行しているガベージ サーバーでこれらのプロジェクトをテストしたいと考えています。 K3s には DigitalOcean ドロップレットへのリバース プロキシがありますが、インターネットからはアクセスできません。つまり、プロジェクトはオンプレミス展開をサポートする必要があるということです。 https://k3s.io/ また、k8s を完全に抽象化できるようにしたいと考えています。つまり、私は常に大量の yaml を扱ったり、helm チャートをデプロイしたりしたくないので、アプリケーションについてもっと考えて、それを CLI を通じて行いたいのです。 要するに、私が望んでいるのは、ボタンを押すだけで機能することです。 私たちのアプリケーションには多くの可動部分があり、その中には単純なスクリプトもあれば、ゲーム クライアントとの通信を提供する大規模なアプリケーションもあります。いずれにせよ、当社のプラットフォームは、多数の異なるアプリケーション タイプをサポートする必要があります。これは通常、Dockerfile を介したデプロイメントをサポートすることを意味します。 実行を計画しているアプリケーションのほとんどは、状態に密接に関連しています。 Wordpress を例にとると、写真を保存する場所が必要になります。アプリ内で撮影した写真も保存しておく必要があります。アプリケーションに何らかの永続性を持たせる方法が必要です。 気に入っているプロジェクトはたくさんありますが、良いプロジェクトと素晴らしいプロジェクトの違いは、コミュニティと業界での採用です。独自の bash スクリプトを持つことと、GitHub 上に 3 人のアクティブ ユーザーがいるプロジェクトを持つことの間にはほとんど違いはありません。何か失敗したり、何らかの理由でアドバイスが必要になったりした場合は、活発なコミュニティから助けを得ることができます。 3. プロジェクトリストを簡単に見るネイティブ 私の Knative 体験は素晴らしいスタートを切りました!それを読んで、Google が自社の PaaS のようなデプロイメントに使用しているプラットフォームを自社のプラットフォーム内で実行できると知り、興奮しました。 Google が k8s を作成したことを考えれば、これは非常に適切であるに違いありません。インストールのプロセスは予想よりもはるかに困難でした。 https://knative.dev/docs/install/any-kubernetes-cluster/ プラットフォームをインストールする簡単な方法はないようですし、プラットフォームを簡単に使用できないことは将来的にリスクとなります。 OpenFaaSクラウド インストールはとても簡単です!プラットフォームをすぐに立ち上げて稼働させることができました。これは私のニーズのほとんどを満たしていますが、本格的な PaaS オプションというよりも、OpenFaas を実装する興味深い方法のように思えます。私たちのユースケースをこの特定のプラットフォームにどのように適合させるかがわかりません。疎結合のプロジェクトや小規模な機能で作業している場合、これは最適なオプションです。 コンボックス Convox は素晴らしいですね!元 Heroku エンジニア数名によって k8s 上に構築されたプラットフォーム。完璧ですね!試してみたかったので、すぐに DigitalOcean k8s クラスターにデプロイし始めました。開発経験は素晴らしいです! ただし、プラットフォームのオンプレミス バージョンはサポートされていないようです。さらに、このプロジェクトには、少数の早期導入者を除けば、それほど大きなコミュニティはないようです。それに比べて、このプロジェクトはあまり知られておらず、結局私はそれをあきらめて別の選択肢を探しました。 庭 これは本当に素晴らしいプロジェクトです。小さな独立系企業が開発した革新的なソリューションなので気に入っています。インストールは簡単で、そのアプローチは k8s をうまく抽象化しますが、yaml ファイルなどの従来の k8s の方法を通じて何らかの形の制御を維持することもできます。本当に気に入って使っています。とても便利です! ただし、一部の CLI はまだ十分に洗練されていないことに気付きましたが、これらは小さな欠点であり、最終製品を代表するものではないと思います。 リオ このプロジェクトはすべての要件を満たしています。本当に使いやすい CLI ですか?はい。もう k8s と一切やり取りしないのですか?はい。 Dockerfile を使用してデプロイしますか?はい!また、他のプラットフォームでは実装されていない、または実装が不十分な機能も多数提供しています。 Rancher の Rio は、アクティブなコミュニティから多くのサポートを受けているようです。 https://rancher.com/blog/2019/rio-revolutionizing-the-way-you-deploy-apps ゴミサーバーにインストールしてセットアップする すぐに k3s インスタンスのリバース プロキシを設定し、Rio の設定を開始しました。 GitHub ページのクイック スタート ガイドに従えば、プロセスは非常に簡単です。
それでおしまい。私は非常に興奮し、既存のインフラストラクチャも同様に簡単に移行できるかどうかをすぐに確認したかったのです。 Rio のデフォルト インストールでは、on-rio.io の rDNS サービスを使用できます。これは便利ですが、リバース プロキシの背後にゴミサーバーを配置する必要はありません。私は Linkerd の経験がないので、今のところは無効にします。コマンド rio install --disable-feature rdns,letsencrypt,linkerd を使用して再インストールした後、目的の結果が得られました。 次に、kubectl 経由でカスタム ClusterDomain をインストールし、on-rio.io 以外の別のドメインを使用できるようにしました。最後に、dnsmasq をインストールし、アプリケーションが解決する app.rio という偽のドメインを作成しました。これにより、ガベージ サーバー上のアプリケーションへの接続を簡単にテストできるようになります。
また、DigitalOcean ドロップレットからこのクラスターに接続する方法も考えなければなりませんでした。ゴミサーバーのポート 80 からドロップレットのポート 8080 にリバース プロキシします。 Rio はポート 80 を使用し、Gloo のゲートウェイ プロキシをインストールします。 最後のステップとして、Gloo ゲートウェイを指すように nginx 構成を設定します。
ここで注意すべき重要な点が 2 つあります。proxy_http_version 1.1 と proxy_set_header Host です。 proxy_http_version は非常に重要です。Envoy をベースにした Gloo は、http_version 1.0 のゲートウェイをサポートしておらず、1.1 のみをサポートしているためです。それ以外の場合は、426 アップグレードが必要というエラーが返されます。 Host ヘッダーは、PublicDomain を実装する上で非常に重要です。 PublicDomain を追加するには、プロキシされる server_name または Host ヘッダーと一致する必要があることに注意することが重要です。一致しないと、Gloo はアクセスしようとしているサービスを識別できません。
これは、最も適切な Kubernetes PaaS ソリューションを見つけるための私の冒険です。 |
<<: マイクロソフト、Windows Virtual Desktop 機能の重要なアップデートを発表
>>: Dynatrace は、ガートナーの最新のアプリケーション パフォーマンス監視の重要な機能レポートで 6 つのユース ケースのうち 5 つで最高スコアを獲得しました。
巨人のプレッシャーの下でどうやって生き残るか? Wu Zhixiang と Tongcheng.co...
医療分野で働いている友人は、自分のウェブサイトのランキングについて非常に心配しているに違いないと思い...
考えてみてください。WeChat のパブリック アカウントは、実際には雑誌、テレビ番組、有名ブランド...
[51CTO.com からのオリジナル記事] VMware は、その強力なサーバー仮想化テクノロジー...
モバイルインターネットはすでに手の届くところにあり、今年に入ってモバイルインターネットに関わるオンラ...
virmach vps は、3 月にロサンゼルス データ センターで、Windows が組み込まれた...
8月29日午後4時、奇虎360は公開書簡を発表し、自社の検索機能を強調しながらも「独占禁止法」の旗を...
莫言がノーベル文学賞を受賞し、インターネット企業はすぐにこの機会を利用して市場に参入した(写真提供:...
ハイブリッド マルチクラウド環境では、データの急速な増加により、企業はかつてないデータ管理コストのプ...
数年間ウェブサイトに携わってきた私は、個人的には外部リンクよりもフレンドリーリンクを重視しています。...
概要:WeChatパブリックプラットフォームは昨日、「WeChatストア」を正式に開始しました。We...
ikoula は、非常に優れた構成条件と安価な価格の特別なサーバーを立ち上げました。ご興味があれば、...
[51CTO.com クイック翻訳] よく耳にする「サーバーレス」は、「イベント駆動型コンピューティ...
サーバーを水に浸す単相浸漬液冷却技術は、グリーン データ センターの新しい標準になりつつあります。 ...
8月23日、テンセントと国家電網重慶総合エネルギー公司は2021年重慶スマート博覧会で戦略的協力協定...