YugabyteDBのためのOkeのコスト- 2 -ヘルムチャートからインストール
12854 ワード
その中で、オラクルクラウドでKubernetesクラスタを作成しました.このポストでは
私は、yugabytedbをインストールするために名前空間を作成しています
デフォルトのStorageClassを変更します
ヘルムチャートから最新版をインストールします.
ここから2つのものをカスタマイズしますvalues.yaml : ストレージ(各PersistentVolumeClaimに1テラバイトを入れます) 配置情報(YugabyteDBは、それが1つの広告失敗に無言であるために、リーダーとフォロワーの正しいバランスを確実にするために、どの可用性ドメインに関して知っていなければなりません). デフォルトはレプリケーション因子のRF = 3です.
インストールは数分かかります.
私の中でつくられるポッドは、ここにあります
The
現時点では、データベースは空ですが、次のポストでSQLを実行します.PostgreSQL互換のポイントは、
である
もう一つは 5433 ysqlエンドポイント( PostgreSQL互換API ) 9042 YCQL終点( Cassandra互換API ) 6379 Eryis Enspoint ( Redis互換API )
YugabyteDBは、何も分散SQLデータベースを共有することに加えて、また、マルチAPIです.
次のポストにPostgreSQL互換APIを使用してロードを生成します.私の目標は、いくつかのストレージとネットワーク転送を使用して、Oracle雲のコストを評価することです
名前空間
私は、yugabytedbをインストールするために名前空間を作成しています
dev@cloudshell:~ (uk-london-1)$
kubectl create namespace yb-demo
namespace/yb-demo created
ストレージクラス
デフォルトのStorageClassを変更します
oci-bv
, 推奨されるコンテナストレージインターフェース(CSI)ボリュームプラグインoci
( flexvolume 1 ).ブロックボリュームが労働者の計算インスタンスと同じ可用性ドメインにあることを保証するためにもこれを必要とします.dev@cloudshell:~ (uk-london-1)$
kubectl patch storageclass oci \
-p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/\
is-default-class":"false"}}}'
storageclass.storage.k8s.io/oci patched
dev@cloudshell:~ (uk-london-1)$
kubectl patch storageclass oci-bv \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/\
is-default-class":"true"}}}'
storageclass.storage.k8s.io/oci-bv patched
結果:dev@cloudshell:~ (uk-london-1)$
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
oci oracle.com/oci Delete Immediate false 1h
oci-bv (default) blockvolume.csi.oraclecloud.com Delete WaitForFirstConsumer true 1h
ヘルムチャート
ヘルムチャートから最新版をインストールします.
dev@cloudshell:~ (uk-london-1)$
helm repo add yugabytedb https://charts.yugabyte.com
"yugabytedb" already exists with the same configuration, skipping
dev@cloudshell:~ (uk-london-1)$
helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "kubernetes-dashboard" chart repository
...Successfully got an update from the "yugabytedb" chart repository
Update Complete. ⎈Happy Helming!⎈
dev@cloudshell:~ (uk-london-1)$
helm search repo yugabytedb/yugabyte
NAME CHART VERSION APP VERSION DESCRIPTION
yugabytedb/yugabyte 2.13.0 2.13.0.0-b42 YugabyteDB is the high-performance distributed ...
yugabytedbの設定
ここから2つのものをカスタマイズしますvalues.yaml :
cat > yb-demo.yaml <<'YAML'
storage:
master:
size: 1Ti
tserver:
size: 1Ti
gflags:
master:
placement_cloud: $(curl -s http://169.254.169.254/opc/v1/instance/regionInfo/realmDomainComponent)
placement_region: $(curl -s http://169.254.169.254/opc/v1/instance/region)
placement_zone: $(curl -s http://169.254.169.254/opc/v1/instance/ociAdName)
tserver:
placement_cloud: $(curl -s http://169.254.169.254/opc/v1/instance/regionInfo/realmDomainComponent)
placement_region: $(curl -s http://169.254.169.254/opc/v1/instance/region)
placement_zone: $(curl -s http://169.254.169.254/opc/v1/instance/ociAdName)
YAML
いくつかのスクリーンショットは、後でこのカスタマイズなしで作られて、50 GBの記憶(OKEの最小)とCloud 1/Zone 1/RACK 1デフォルト配置を示していました.適切な配置情報はこちらです.yugabytedbインストール
インストールは数分かかります.
dev@cloudshell:~ (uk-london-1)$
helm install yb-demo yugabytedb/yugabyte --namespace yb-demo \
-f yb-demo.yaml --wait
NAME: yb-demo
LAST DEPLOYED: Wed Apr 6 08:40:02 2022
NAMESPACE: yb-demo
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get YugabyteDB Pods by running this command:
kubectl --namespace yb-demo get pods
2. Get list of YugabyteDB services that are running:
kubectl --namespace yb-demo get services
3. Get information about the load balancer services:
kubectl get svc --namespace yb-demo
4. Connect to one of the tablet server:
kubectl exec --namespace yb-demo -it yb-tserver-0 bash
5. Run YSQL shell from inside of a tablet server:
kubectl exec --namespace yb-demo -it yb-tserver-0 -- /home/yugabyte/bin/ysqlsh -h yb-tserver-0.yb-tservers.yb-demo
6. Cleanup YugabyteDB Pods
For helm 2:
helm delete yb-demo --purge
For helm 3:
helm delete yb-demo -n yb-demo
NOTE: You need to manually delete the persistent volume
kubectl delete pvc --namespace yb-demo -l app=yb-master
kubectl delete pvc --namespace yb-demo -l app=yb-tserver
ポッド
私の中でつくられるポッドは、ここにあります
yb-demo
名前空間:dev@cloudshell:~ (uk-london-1)$
kubectl get pods -n yb-demo -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
yb-master-0 2/2 Running 0 12m 10.244.0.4 10.0.10.51 <none> <none>
yb-master-1 2/2 Running 0 12m 10.244.1.3 10.0.10.152 <none> <none>
yb-master-2 2/2 Running 0 12m 10.244.0.131 10.0.10.103 <none> <none>
yb-tserver-0 2/2 Running 0 12m 10.244.0.132 10.0.10.103 <none> <none>
yb-tserver-1 2/2 Running 0 12m 10.244.1.4 10.0.10.152 <none> <none>
yb-tserver-2 2/2 Running 0 12m 10.244.0.5 10.0.10.51 <none> <none>
私は3を持っているmaster
yugabytedbクラスタの制御面であり、3tserver
はデータプレーンです.3が最小であるので、高可用性のために、クラスタは複製因子helm install
with --set gflags.tserver.replication_factor=5
例えば).これは3master
つはリーダーであり、2つの他の人は、利用可能なドメインの停電の場合にリーダーになる準備ができている.少なくとも3tserver
同じ理由で、多くのノードに接続、ロード、データを分配することができます.サービス
The
master
and tserver
ヘッドレスサービスを通してWebコンソールとSQLエンドポイントを公開するClusterIP
それはLoadBalancer
:
dev@cloudshell:~ (uk-london-1)$
kubectl get services -n yb-demo -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
yb-master-ui LoadBalancer 10.96.187.203 141.147.107.246 7000:31290/TCP 17m app=yb-master
yb-masters ClusterIP None <none> 7000/TCP,7100/TCP 17m app=yb-master
yb-tserver-service LoadBalancer 10.96.122.104 141.147.106.110 6379:32100/TCP,9042:30198/TCP,5433:31343/TCP 17m app=yb-tserver
yb-tservers ClusterIP None <none> 9000/TCP,12000/TCP,11000/TCP,13000/TCP,9100/TCP,6379/TCP,9042/TCP,5433/TCP 17m app=yb-tserver
ポート7000はmaster
私がこの研究室のためにパブリックネットワークに置いた拡張IPでアクセスできるWebコンソールhttp://141.147.107.246:7000
現時点では、データベースは空ですが、次のポストでSQLを実行します.PostgreSQL互換のポイントは、
tserver
ロードバランサpostgresql://141.147.106.110:5433/yugabyte
:$ psql postgresql://141.147.106.110:5433/yugabyte
psql (13.5, server 11.2-YB-2.13.0.0-b0)
Type "help" for help.
yugabyte=# select * from yb_servers();
host | port | num_connections | node_type | cloud | region | zone | public_ip
----------------------------------------------------+------+-----------------+-----------+--------+-------------+-------+----------------------------------------------------
yb-tserver-1.yb-tservers.yb-demo.svc.cluster.local | 5433 | 0 | primary | cloud1 | datacenter1 | rack1 | yb-tserver-1.yb-tservers.yb-demo.svc.cluster.local
yb-tserver-0.yb-tservers.yb-demo.svc.cluster.local | 5433 | 0 | primary | cloud1 | datacenter1 | rack1 | yb-tserver-0.yb-tservers.yb-demo.svc.cluster.local
yb-tserver-2.yb-tservers.yb-demo.svc.cluster.local | 5433 | 0 | primary | cloud1 | datacenter1 | rack1 | yb-tserver-2.yb-tservers.yb-demo.svc.cluster.local
私はyb_servers()
すべてのノードに関する情報を返す関数.注意public_ip
Kubernetesクラスタ内のアドレスです.外部から、我々は自動的にOKEによって作成されている負荷のbalancersを使用しても、タグ付きOKEclusterName: yugabytedb
:である
master
コンソール141.147.107.246
, ポート7000のリスニングもう一つは
tserver
サービス141.147.106.110
, リスニングYugabyteDBは、何も分散SQLデータベースを共有することに加えて、また、マルチAPIです.
次のポストにPostgreSQL互換APIを使用してロードを生成します.私の目標は、いくつかのストレージとネットワーク転送を使用して、Oracle雲のコストを評価することです
Reference
この問題について(YugabyteDBのためのOkeのコスト- 2 -ヘルムチャートからインストール), 我々は、より多くの情報をここで見つけました https://dev.to/franckpachot/the-cost-of-oke-for-yugabytedb-2-install-from-helm-chart-b7lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol