From 97f1c88d4b8ec1676aede6cc44d56424a581b4d9 Mon Sep 17 00:00:00 2001 From: Sid Choudhury Date: Thu, 13 Feb 2020 15:02:43 -0800 Subject: [PATCH] added gke helm and updated oss helm instructions (#3652) --- docs/content/latest/benchmark/tpcc.md | 4 +- docs/content/latest/deploy/_index.html | 2 +- .../deploy/kubernetes/gke/helm-chart.md | 292 +++++++++++++++++- .../deploy/kubernetes/oss/helm-chart.md | 133 ++++---- 4 files changed, 348 insertions(+), 83 deletions(-) diff --git a/docs/content/latest/benchmark/tpcc.md b/docs/content/latest/benchmark/tpcc.md index a68c9b26e2b1..e1227a12d9cc 100644 --- a/docs/content/latest/benchmark/tpcc.md +++ b/docs/content/latest/benchmark/tpcc.md @@ -29,7 +29,7 @@ cd tpcc ``` ## Step 2. Start your database -Start the database using steps mentioned here: https://docs.yugabyte.com/latest/quick-start/explore-ysql/. +Start the database using steps mentioned [here](https://docs.yugabyte.com/latest/quick-start/explore-ysql/). ## Step 3. Configure connection properties Set the following connection configurations in the workload config file `config/workload_1.xml`. @@ -45,7 +45,7 @@ Set the following connection configurations in the workload config file `config/ ``` The details of the workloads have already been populated in the sample configs present in /config. -The workload descriptor works the same way as it does in the upstream branch and details can be found in the [on-line documentation](https://github.com/oltpbenchmark/oltpbench/wiki). +The workload descriptor works the same way as it does in the upstream branch and details can be found in the associated [documentation](https://github.com/oltpbenchmark/oltpbench/wiki). ## Step 4. Running the Benchmark A utility script (./tpccbenchmark) is provided for running the benchmark. The options are diff --git a/docs/content/latest/deploy/_index.html b/docs/content/latest/deploy/_index.html index 73f64e01a79d..b1677cfde1f2 100644 --- a/docs/content/latest/deploy/_index.html +++ b/docs/content/latest/deploy/_index.html @@ -41,7 +41,7 @@
-
3 articles
+
5 chapters
Kubernetes
diff --git a/docs/content/latest/deploy/kubernetes/gke/helm-chart.md b/docs/content/latest/deploy/kubernetes/gke/helm-chart.md index f142a0a5e739..bc56fa5848b4 100644 --- a/docs/content/latest/deploy/kubernetes/gke/helm-chart.md +++ b/docs/content/latest/deploy/kubernetes/gke/helm-chart.md @@ -37,31 +37,305 @@ showAsideToc: true -Instructions specific to GKE are coming soon. Until then, refer to the [Open Source Kubernetes](../../oss/helm-chart/) instruc +## Prerequisites -tions. +- Download and install the [Google Cloud SDK](https://cloud.google.com/sdk/downloads/). + +**NOTE:** If you install gcloud using a package manager (as opposed to downloading and installing it manually), it does not support some of the commands below. + +- Configure defaults for gcloud + +Set the project ID as `yugabyte`. You can change this as per your need. + +```sh +$ gcloud config set project yugabyte +``` + +Set the default compute zone as `us-west1-b`. You can change this as per your need. + +```sh +$ gcloud config set compute/zone us-west1-b +``` + +- Install `kubectl` + +After installing Cloud SDK, install the `kubectl` command line tool by running the following command. + +```sh +$ gcloud components install kubectl +``` + +Note that GKE is usually 2 or 3 major releases behind the upstream/OSS Kubernetes release. This means you have to make sure that you have the latest kubectl version that is compatible across different Kubernetes distributions if that's what you intend to. + +- Ensure `helm` is installed + +First, check to see if Helm is installed by using the Helm version command. + +```sh +$ helm version +``` + +For Helm 2, you should see something similar to the following output. +``` +Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"} +Error: could not find tiller +``` + +If you run into issues associated with `tiller` with Helm 2, you can initialize helm with the upgrade option. +```sh +$ helm init --upgrade --wait +``` + +Tiller, the server-side component for Helm 2, will then be installed into your Kubernetes cluster. By default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. To prevent this, run `helm init` with the `--tiller-tls-verify` flag.For more information on securing your installation see [here](https://docs.helm.sh/using_helm/#securing-your-helm-installation). + +For Helm 3, you should see something similar to the following output. Note that the `tiller` server side component has been removed in Helm 3. +``` +version.BuildInfo{Version:"v3.0.3", GitCommit:"ac925eb7279f4a6955df663a0128044a8a6b7593", GitTreeState:"clean", GoVersion:"go1.13.6"} +``` + +## 1. Create a GKE cluster + +Create a Kubernetes cluster, if you have not already done so, by running the following command. + +```sh +$ gcloud container clusters create yugabyte +``` + +## 2. Create a YugabyteDB cluster + +### Create service account (Helm 2 only) + +Before you can create the cluster, you need to have a service account that has been granted the `cluster-admin` role. Use the following command to create a `yugabyte-helm` service account granted with the ClusterRole of `cluster-admin`. + +```sh +$ kubectl create -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/yugabyte-rbac.yaml +``` + +```sh +serviceaccount/yugabyte-helm created +clusterrolebinding.rbac.authorization.k8s.io/yugabyte-helm created +``` + +### Initialize Helm (Helm 2 only) + +Initialize `helm` with the service account, but use the `--upgrade` option to ensure that you can upgrade any previous initializations you may have made. + +```sh +$ helm init --service-account yugabyte-helm --upgrade --wait +``` +``` +$HELM_HOME has been configured at `/Users//.helm`. + +Tiller (the Helm server-side component) has been upgraded to the current version. +Happy Helming! +``` + +### Add charts repository + +To add the YugabyteDB charts repository, run the following command. + +```sh +$ helm repo add yugabytedb https://charts.yugabyte.com +``` + +### Fetch updates from the repository + +Make sure that you have the latest updates to the repository by running the following command. + +```sh +$ helm repo update +``` + +### Validate the chart version + +**For Helm 2:** + +```sh +$ helm search yugabytedb/yugabyte +``` + +**For Helm 3:** + +```sh +$ helm search repo yugabytedb/yugabyte +``` + +**Output:** + +```sh +NAME CHART VERSION APP VERSION DESCRIPTION +yugabytedb/yugabyte 2.0.12 2.0.12.0-b10 YugabyteDB is the high-performance distr... +``` + +### Install YugabyteDB + +Install YugabyteDB in the Kubernetes cluster using the commands below. + +**For Helm 2:** + +```sh +$ helm install yugabytedb/yugabyte --namespace yb-demo --name yb-demo --wait +``` + +**For Helm 3:** + +For Helm 3, you have to first create a namespace. + +```sh +$ kubectl create namespace yb-demo +$ helm install yb-demo yugabytedb/yugabyte --namespace yb-demo --wait +``` + +## Check the cluster status + +You can check the status of the cluster using various commands noted below. + +**For Helm 2:** + +```sh +$ helm status yb-demo +``` + +**For Helm 3:** + +```sh +$ helm status yb-demo -n yb-demo +``` + +**Output**: + +```sh +NAME: yb-demo +LAST DEPLOYED: Thu Feb 13 13:29:13 2020 +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 + helm delete yb-demo --purge + 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 +``` + +Check the pods. + +```sh +$ kubectl get pods --namespace yb-demo +``` + +``` +NAME READY STATUS RESTARTS AGE +yb-master-0 1/1 Running 0 4m +yb-master-1 1/1 Running 0 4m +yb-master-2 1/1 Running 0 4m +yb-tserver-0 1/1 Running 0 4m +yb-tserver-1 1/1 Running 0 4m +yb-tserver-2 1/1 Running 0 4m +``` + +Check the services. + +```sh +$ kubectl get services --namespace yb-demo +``` + +``` +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +yb-master-ui LoadBalancer 10.109.39.242 35.225.153.213 7000:31920/TCP 10s +yb-masters ClusterIP None 7100/TCP,7000/TCP 10s +yb-tserver-service LoadBalancer 10.98.36.163 35.225.153.214 6379:30929/TCP,9042:30975/TCP,5433:30048/TCP 10s +yb-tservers ClusterIP None 7100/TCP,9000/TCP,6379/TCP,9042/TCP,5433/TCP 10s +``` + +You can even check the history of the `yb-demo` deployment. + +**For Helm 2:** + +```sh +$ helm history yb-demo +``` + +**For Helm 3**: + +```sh +$ helm history yb-demo -n yb-demo +``` + +**Output:** + +```sh +REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION +1 Thu Feb 13 13:29:13 2020 deployed yugabyte-2.0.12 2.0.12.0-b10 Install complete +``` + +## Connect using YugabyteDB Shells + +To connect and use the YSQL Shell `ysqlsh`, run the following command. + +```sh +$ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/ysqlsh -- -h yb-tserver-0.yb-tservers.yb-demo +``` + +To connect and use the YCQL Shell `cqlsh`, run the following command. + +```sh +$ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/cqlsh yb-tserver-0.yb-tservers.yb-demo +``` + +## Connect using external clients + +To connect an external program, get the load balancer `EXTERNAL-IP` IP address of the `yb-tserver-service` service and connect to the 5433 / 9042 ports for YSQL / YCQL services respectively. + +```sh +$ kubectl get services --namespace yb-demo +``` +``` +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +... +yb-tserver-service LoadBalancer 10.98.36.163 35.225.153.214 6379:30929/TCP,9042:30975/TCP,5433:30048/TCP 10s +... +``` ## Configure cluster -### LoadBalancer for services +You can configure the cluster using the same commands/options as [Open Source Kubernetes](../../oss/helm-chart/#configure-cluster) + +### Independent LoadBalancers -By default, the YugabyteDB Helm chart exposes only the master UI endpoint using LoadBalancer. If you want to expose the client API services (YSQL and YCQL) using LoadBalancer for your app to use, you could do that in couple of different ways. +By default, the YugabyteDB Helm chart will expose the client API endpoints as well as master UI endpoint using 2 LoadBalancers. If you want to expose the client APIs using independent LoadBalancers, you can do the following. -If you want an individual LoadBalancer endpoint for each of the services, run the following command. +**For Helm 2**: ```sh -$ helm install yugabyte -f expose-all.yaml --namespace yb-demo --name yb-demo --wait +helm install yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --name yb-demo --wait ``` -If you want to create a shared LoadBalancer endpoint for all the services, run the following command. +**For Helm 3:** ```sh -$ helm install yugabyte -f expose-all-shared.yaml --namespace yb-demo --name yb-demo --wait +helm install yb-demo yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --wait ``` You can also bring up an internal LoadBalancer (for either YB-Master or YB-TServer services), if required. Just specify the [annotation](https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer) required for your cloud provider. The following command brings up an internal LoadBalancer for the YB-TServer service in Google Cloud Platform. ```sh -$ helm install yugabyte -f expose-all.yaml --namespace yb-demo --name yb-demo \ +$ helm install yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --name yb-demo \ --set annotations.tserver.loadbalancer."cloud\.google\.com/load-balancer-type"=Internal --wait ``` diff --git a/docs/content/latest/deploy/kubernetes/oss/helm-chart.md b/docs/content/latest/deploy/kubernetes/oss/helm-chart.md index 7bf057042ba4..a3f76a49a65b 100644 --- a/docs/content/latest/deploy/kubernetes/oss/helm-chart.md +++ b/docs/content/latest/deploy/kubernetes/oss/helm-chart.md @@ -50,8 +50,8 @@ You must have a Kubernetes cluster that has Helm configured. If you have not ins The Helm chart for YugabyteDB (`yugabyte-helm`) has been tested with the following software versions: - Kubernetes 1.10+ -- Helm 2.8.0+ or 3.0.0 -- YugabyteDB Docker image (yugabytedb/yugabyte) 1.1.0+ +- Helm 2.8+ or 3.0+ +- YugabyteDB docker image (yugabytedb/yugabyte) 1.1.0+ - Kubernetes nodes where a total of 12 CPU cores and 45 GB RAM can be allocated to YugabyteDB. This can be three nodes with 4 CPU core and 15 GB RAM allocated to YugabyteDB. - For optimal performance, ensure you've set the appropriate [system limits using `ulimit`](../../manual-deployment/system-config/#setting-ulimits/) on each node in your Kubernetes cluster. @@ -71,7 +71,7 @@ Server: &version.Version{SemVer:"v2.10.0", GitCommit:"...", GitTreeState:"clean" **Output for Helm 3:** ``` -version.BuildInfo{Version:"v3.0.0-beta.4", GitCommit:"...", GitTreeState:"dirty", GoVersion:"go1.13.1"} +version.BuildInfo{Version:"v3.0.3", GitCommit:"ac925eb7279f4a6955df663a0128044a8a6b7593", GitTreeState:"clean", GoVersion:"go1.13.6"} ``` ## Create cluster @@ -139,13 +139,15 @@ $ helm search repo yugabytedb/yugabyte **Output:** ```sh -NAME CHART VERSION APP VERSION DESCRIPTION -yugabytedb/yugabyte 1.3.0 1.3.0.0-b1 YugabyteDB is the high-performance distr... +NAME CHART VERSION APP VERSION DESCRIPTION +yugabytedb/yugabyte 2.0.12 2.0.12.0-b10 YugabyteDB is the high-performance distr... ``` ### Install YugabyteDB -Install YugabyteDB in the Kubernetes cluster using the command below. By default, this Helm chart will expose only the master UI endpoint using LoadBalancer. If you need to connect external clients, see the section below. +Install YugabyteDB in the Kubernetes cluster using the commands below. + +#### On multi-node Kubernetes **For Helm 2:** @@ -155,10 +157,15 @@ $ helm install yugabytedb/yugabyte --namespace yb-demo --name yb-demo --wait **For Helm 3:** +For Helm 3, you have to first create a namespace. + ```sh +$ kubectl create namespace yb-demo $ helm install yb-demo yugabytedb/yugabyte --namespace yb-demo --wait ``` +#### On Minikube + If you are running in a resource-constrained environment or a local environment, such as Minikube, you will have to change the default resource requirements by using the command below. See next section for a detailed description of these resource requirements. **For Helm 2:** @@ -169,14 +176,15 @@ $ helm install yugabytedb/yugabyte --set resource.master.requests.cpu=0.1,resour **For Helm 3:** +For Helm 3, you have to first create a namespace. ```sh +$ kubectl create namespace yb-demo $ helm install yb-demo yugabytedb/yugabyte --set resource.master.requests.cpu=0.1,resource.master.requests.memory=0.2Gi,resource.tserver.requests.cpu=0.1,resource.tserver.requests.memory=0.2Gi --namespace yb-demo ``` -Connect using the YSQL CLI (`ysqlsh`) by running the following command. - +Note that in minikube, the LoadBalancers for `yb-master-ui` and `yb-tserver-service` will remain in pending state since load balancers are not available in a minikube environment. If you would like to turn off these load balancers simply pass the `enableLoadBalancer=False` flag as shown below. ```sh -$ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/ysqlsh -- -h yb-tserver-0.yb-tservers.yb-demo +$ helm install yb-demo yugabytedb/yugabyte --set resource.master.requests.cpu=0.1,resource.master.requests.memory=0.2Gi,resource.tserver.requests.cpu=0.1,resource.tserver.requests.memory=0.2Gi,enableLoadBalancer=False --namespace yb-demo ``` ## Check the cluster status @@ -198,32 +206,33 @@ $ helm status yb-demo -n yb-demo **Output**: ```sh -LAST DEPLOYED: Fri Oct 5 09:04:46 2018 +NAME: yb-demo +LAST DEPLOYED: Thu Feb 13 13:29:13 2020 NAMESPACE: yb-demo -STATUS: DEPLOYED - -RESOURCES: -==> v1/Service -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -yb-tservers ClusterIP None 7100/TCP,9000/TCP,6379/TCP,9042/TCP 7s -yb-masters ClusterIP None 7100/TCP,7000/TCP 7s -yb-master-ui LoadBalancer 10.106.132.116 7000:30613/TCP 7s - -==> v1/StatefulSet -NAME DESIRED CURRENT AGE -yb-master 3 3 7s -yb-tserver 3 3 7s - -==> v1/Pod(related) -NAME READY STATUS RESTARTS AGE -yb-master-0 0/1 Pending 0 7s -yb-master-1 0/1 Pending 0 7s -yb-master-2 0/1 Pending 0 7s -yb-tserver-0 0/1 Pending 0 7s -yb-tserver-1 0/1 Pending 0 7s -yb-tserver-2 0/1 Pending 0 7s +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 + helm delete yb-demo --purge + 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 ``` Check the pods. @@ -249,10 +258,11 @@ $ kubectl get services --namespace yb-demo ``` ``` -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -yb-master-ui LoadBalancer 10.111.34.175 7000:31418/TCP 1m -yb-masters ClusterIP None 7100/TCP,7000/TCP 1m -yb-tservers ClusterIP None 7100/TCP,9000/TCP,6379/TCP,9042/TCP 1m +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +yb-master-ui LoadBalancer 10.109.39.242 35.225.153.213 7000:31920/TCP 10s +yb-masters ClusterIP None 7100/TCP,7000/TCP 10s +yb-tserver-service LoadBalancer 10.98.36.163 35.225.153.214 6379:30929/TCP,9042:30975/TCP,5433:30048/TCP 10s +yb-tservers ClusterIP None 7100/TCP,9000/TCP,6379/TCP,9042/TCP,5433/TCP 10s ``` You can even check the history of the `yb-demo` deployment. @@ -272,19 +282,19 @@ $ helm history yb-demo -n yb-demo **Output:** ```sh -REVISION UPDATED STATUS CHART DESCRIPTION -1 Fri Oct 5 09:04:46 2018 DEPLOYED yugabyte-1.3.0 Install complete +REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION +1 Thu Feb 13 13:29:13 2020 deployed yugabyte-2.0.12 2.0.12.0-b10 Install complete ``` -## Connect using YugabyteDB CLIs +## Connect using YugabyteDB Shells -To connect and use the YSQL CLI (`ysqlsh`), run the following command. +To connect and use the YSQL Shell `ysqlsh`, run the following command. ```sh $ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/ysqlsh -- -h yb-tserver-0.yb-tservers.yb-demo ``` -To connect and use the YCQL CLI (`cqlsh`), run the following command. +To connect and use the YCQL Shell `cqlsh`, run the following command. ```sh $ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/cqlsh yb-tserver-0.yb-tservers.yb-demo @@ -292,36 +302,18 @@ $ kubectl exec -n yb-demo -it yb-tserver-0 /home/yugabyte/bin/cqlsh yb-tserver-0 ## Connect using external clients -By default, the YugabyteDB Helm chart will expose only the master UI endpoint using LoadBalancer. If you want to expose YSQL and YCQL services using LoadBalancer for your app to use, you can do the following. - -**For Helm 2**: +To connect an external program, get the load balancer `EXTERNAL-IP` IP address of the `yb-tserver-service` service and connect to the 5433 / 9042 ports for YSQL / YCQL services respectively. ```sh -helm install yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --name yb-demo --wait -``` - -**For Helm 3:** - -```sh -helm install yb-demo yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --wait +$ kubectl get services --namespace yb-demo ``` - -To connect an external program, get the load balancer IP address of the corresponding service. The example below shows how to do this for the YSQL and YCQL services. - -```sh -$ kubectl get services --all-namespaces ``` - -``` -NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ... -yb-demo yql-service LoadBalancer 10.47.249.27 35.225.153.213 9042:30940/TCP 2m -yb-demo ysql-service LoadBalancer 10.106.28.246 35.225.153.214 5433:30790/TCP 2m +yb-tserver-service LoadBalancer 10.98.36.163 35.225.153.214 6379:30929/TCP,9042:30975/TCP,5433:30048/TCP 10s ... ``` -Any program can use the `EXTERNAL-IP` of the `ysql-service` and `yql-service` to connect to the YSQL and YCQL APIs respectively. - ## Configure cluster Instead of using the default values in the Helm chart, you can also modify the configuration of the YugabyteDB cluster according to your requirements. The following section shows the commands and tags that can be modified to achieve the desired configuration. @@ -367,20 +359,20 @@ Replica count can be changed using the command below. Note only the tservers nee $ helm upgrade --set replicas.tserver=5 yb-demo ./yugabyte ``` -### LoadBalancer for services +### Independent LoadBalancers -By default, the YugabyteDB Helm chart exposes only the master UI endpoint using LoadBalancer. If you want to expose the YCQL and YEDIS services using LoadBalancer for your app to use, you could do that in couple of different ways. +By default, the YugabyteDB Helm chart will expose the client API endpoints as well as master UI endpoint using 2 LoadBalancers. If you want to expose the client APIs using independent LoadBalancers, you can do the following. -If you want an individual LoadBalancer endpoint for each of the services (YCQL, YEDIS), run the following command. +**For Helm 2**: ```sh -$ helm install yugabyte -f expose-all.yaml --namespace yb-demo --name yb-demo --wait +helm install yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --name yb-demo --wait ``` -If you want to create a shared LoadBalancer endpoint for all the services (YCQL, YEDIS), run the following command. +**For Helm 3:** ```sh -$ helm install yugabyte -f expose-all-shared.yaml --namespace yb-demo --name yb-demo --wait +helm install yb-demo yugabytedb/yugabyte -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/expose-all.yaml --namespace yb-demo --wait ``` You can also bring up an internal LoadBalancer (for either YB-Master or YB-TServer services), if required. Just specify the [annotation](https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer) required for your cloud provider. See [Amazon EKS](../../eks/helm-chart/) and [Google Kubernetes Engine](../../gke/helm-chart/) for examples. @@ -409,7 +401,6 @@ $ helm upgrade yb-demo yugabytedb/yugabyte --set Image.tag=2.0.10.0-b4 --wait $ helm upgrade yb-demo yugabytedb/yugabyte --set Image.tag=2.0.10.0-b4 --wait -n yb-demo ``` - ## Delete cluster To delete the cluster, you need to purge the Helm chart, and then delete the PVCs.