Kuby-core: kubedbの最近のバージョンをサポートする

作成日 2021年04月28日  ·  2コメント  ·  ソース: getkuby/kuby-core

残念ながら、AppsCode(kubedbのメーカー)の優秀な人々は、各ユーザーに無料のライセンスを取得するように要求しています。 kubyはライセンスを自動的に取得するためにいくつかのトリッキーなことを行うことができますが、それは特に道徳的ではありません(またはおそらく合法ですか?)私が考えることができる唯一の解決策は、クラスターのセットアップ中にユーザーをAppsCode Webサイトに誘導し、プロンプトを表示することですライセンスファイルの内容について。 明らかにそれは理想的ではありませんが、kubyでkubedbを使い続けたい場合は、これが唯一の選択肢だと思います(これは素晴らしいと思います)。

enhancement help wanted

全てのコメント2件

わかりました、ここにいくつかの追加のコンテキスト。 難しい部分はプログラムでライセンスを取得することではないことがわかりました(これは可能です。ライセンスサーバートークンや電子メールアドレスなどを要求するだけです)。 難しいのは、kubedbオペレーターと個々のデータベースを_アップグレード_することです。 v0.12をアンインストールすること自体は、既存のデータベースインスタンスを削除したくないので難しいのですが、最終的には機能するようになりました。 幸い、Helmを使用するとv0.18(この記事の執筆時点での最新バージョン)のインストールは非常に簡単です...しかし、すでに実行されている(ダウンタイムがゼロの)既存のPostgresまたはMySQLインスタンスをアップグレードするのは非常に困難です。 これが私が(ほぼ)Postgresで機能するようになったステップです:

  1. 既存のデータベースが論理レプリケーション用に設定されていることを確認します。これには、WALレベル(先行書き込みログ)の変更が必要です。 WALレベルを設定するには、pgの再起動が必要です。したがって、これを行う最も簡単な方法は、レプリカの数を1以上に設定すると同時に、kubedbに追加の構成を使用するように指示することです。これにより、再起動が行われます。 とにかく複数のレプリカが必要なので、再起動してもダウンタイムは発生しません。
  2. 既存のデータベースインスタンスを停止しないように特に注意して、古いバージョンのkubedbオペレーターをアンインストールし、新しいバージョンをインストールします。 Postgresインスタンスがまだ実行されている場合、k8sはPostgres CRDの削除にかなり消極的であるため、これは少し注意が必要です。 理にかなっています。 幸い、k8sをだましてやりたいことを実行させる方法があります。
  3. WAL =論理を使用して新しいpostgresインスタンスを立ち上げ、古いデータベースと新しいデータベースの間に必要なpub / subを作成して、古いデータベースのすべてのレコードが新しいデータベースにコピーされるようにします。 Railsからデータベースにアクセスするために使用するユーザーがpostgresではない場合は、 postgresユーザーに新しいデータベースのパスワードを指定するように注意してください(Kubyはデフォルトrootを使用します) 。 これは、kubedbのinitスクリプトのバグであると私が信じているために必要です。 この新しいデータベースは明らかに古いデータベースとは異なる名前を持っている必要がありますが、これは問題です。 データベースの名前によって、Railsが接続するDNS名が決まりますが、実際には変更できません。 うーん...
  4. Railsアプリをデプロイし、どういうわけかそれを新しいデータベースサービスに向けます。
  5. 古いデータベースを削除します
  6. 利益

私は現在、Railsアプリを新しいデータベースサービスに簡単に向ける方法を見つけようとして立ち往生しています。 サービスURLは基本的にハードコーディングされており、動的に変更することはできません。 さらに、新しいデータベースサービスは既存のデータベースサービスと同じ名前にすることはできないため、「正しい」データベースサービスをどこかに保存し(おそらくデプロイメントのアノテーション?)、すべての... docker buildcuzで参照する必要があります。それがdatabase.ymlを書き直すときですか? UGH。

別の解決策は、ロードバランサーのように、サービスの上にトラフィックを動的に向けることができるある種のプロキシを使用することです。

kubyはライセンスを自動的に取得するためにいくつかのトリッキーなことを行うことができますが、それは特に道徳的ではありません(またはおそらく合法ですか?)

タマルはいい奴だし、ユーザーに何が起こっているのかを詳細に公開して、月末に一時ライセンスが期限切れになっても驚かない限り、彼はまったく気にしないと思う。 (?ライセンスの有効期限が切れるとどうなりますか?バックアップが停止したことを意味する場合、それは悪い可能性があります。他のことが失敗し始めることを意味する場合、また悪い可能性があります...それが単に新しいデータベースを作成できないことを意味する場合現在、ライセンスが更新されるまで、これはそれほど悪くないかもしれません。)

外部データベースのオプションはすでにあるので、ユーザーはKubeDBを続行するか、データベースを別の方法で手に入れるかを選択できます。これは、次のタイプをサポートするクラウドプロバイダーを使用していない限り、今日では難しい問題ではありません。必要なデータベース。

アップグレードに必要なものについてのウォークスルーをありがとう! 私はKubeDBのライセンスを持っています。これは、本番クラスターのTeam Hephyに寛大に付与されています。また、KubeDBから開始またはホストされたことがなく、アップグレードが必要な古いデータベースがあります。 私はデータベースバックアップの使用法を学ぶためのライセンスを取得しました。PostgresQLとMariaDBの両方を持っています。tl; drこの分野でも自分の仕事を切り取っています。

私は今、ホームラボクラスターで適切なストレージCSIドライバーを操作する方法を学んでいます。これにより、データベースの処理方法と「本番」クラスターのディザスタリカバリプロパティの改善に大きな違いが生じると思います。 🎉

Kubyはまた、長期的には、KubeDBの優れた販売ベクトルになる可能性があります。 あなたがそれについてどう感じるかわかりません!

このページは役に立ちましたか?
0 / 5 - 0 評価