Skip to content

Commit

Permalink
Improve workflow in docs/google-kubernetes-tutorial.md (#400)
Browse files Browse the repository at this point in the history
* Improve workflow in docs/google-kubernetes-tutorial.md

* Update charts/tidb-cluster/templates/NOTES.txt

Co-Authored-By: cofyc <cofyc.jackson@gmail.com>

* Update docs/google-kubernetes-tutorial.md

Co-Authored-By: cofyc <cofyc.jackson@gmail.com>

* install helm in one command

* fix link

* fix typo

* specify which pods should be running

* delete note about gcloud web console

* Update charts/tidb-cluster/templates/NOTES.txt

Co-Authored-By: cofyc <cofyc.jackson@gmail.com>

* Update docs/google-kubernetes-tutorial.md

Co-Authored-By: cofyc <cofyc.jackson@gmail.com>

* Use <kbd>Ctrl</kbd>+<kbd>C</kbd>, better way to show keyboard keys
  • Loading branch information
cofyc authored Apr 19, 2019
1 parent ef13e32 commit d953b0c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 22 deletions.
5 changes: 3 additions & 2 deletions charts/tidb-cluster/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ Cluster access
kubectl port-forward -n {{ .Release.Namespace }} svc/{{ template "cluster.name" . }}-tidb 4000:4000 &
{{- if .Values.tidb.passwordSecretName }}
mysql -h 127.0.0.1 -P 4000 -u root -D test -p
{{- else -}}
{{- else }}
mysql -h 127.0.0.1 -P 4000 -u root -D test
Set a password for your user
SET PASSWORD FOR 'root'@'%' = '{{ (randAlphaNum 10) }}'; FLUSH PRIVILEGES
SET PASSWORD FOR 'root'@'%' = '{{ (randAlphaNum 10) }}'; FLUSH PRIVILEGES;
{{- end -}}
{{- if .Values.monitor.create }}
* View monitor dashboard for TiDB cluster
kubectl port-forward -n {{ .Release.Namespace }} svc/{{ template "cluster.name" . }}-grafana 3000:3000
Open browser at http://localhost:3000. The default username and password is admin/admin.
If you are running this from a remote machine, you must specify the server's external IP address.
{{- end -}}
33 changes: 13 additions & 20 deletions docs/google-kubernetes-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,9 @@ If you see `Ready` for all nodes, congratulations! You've setup your first Kuber

Helm is the package manager for Kubernetes, and is what allows us to install all of the distributed components of TiDB in a single step. Helm requires both a server-side and a client-side component to be installed.

Download the `helm` installer:

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh

Install `helm`:

chmod 700 get_helm.sh && ./get_helm.sh
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash

Copy `helm` to your `$HOME` directory so that it will persist after the Cloud Shell reaches its idle timeout:

Expand All @@ -79,15 +75,14 @@ Copy `helm` to your `$HOME` directory so that it will persist after the Cloud Sh

Helm will also need a couple of permissions to work properly:

kubectl create serviceaccount tiller --namespace kube-system &&
kubectl apply -f ./manifests/tiller-rbac.yaml &&
helm init --service-account tiller --upgrade

It takes a minute for helm to initialize `tiller`, its server component:

watch "kubectl get pods --namespace kube-system | grep tiller"

When you see `Running`, it's time to hit `Control + C` and proceed to the next step!
When you see `Running`, it's time to hit <kbd>Ctrl</kbd>+<kbd>C</kbd> and proceed to the next step!

## Deploy TiDB Operator

Expand All @@ -101,7 +96,7 @@ We can watch the operator come up with:

watch kubectl get pods --namespace tidb-admin -o wide

When you see `Running`, `Control + C` and proceed to launch a TiDB cluster!
When you see both tidb-scheduler and tidb-controller-manager are `Running`, press <kbd>Ctrl</kbd>+<kbd>C</kbd> and proceed to launch a TiDB cluster!

## Deploy your first TiDB cluster

Expand All @@ -113,39 +108,37 @@ It will take a few minutes to launch. You can monitor the progress with:

watch kubectl get pods --namespace tidb -o wide

The TiDB cluster includes 2 TiDB pods, 3 TiKV pods, and 3 PD pods. When you see all pods `Running`, it's time to `Control + C` and proceed forward!
The TiDB cluster includes 2 TiDB pods, 3 TiKV pods, and 3 PD pods. When you see all pods `Running`, it's time to <kbd>Ctrl</kbd>+<kbd>C</kbd> and proceed forward!

## Connect to the TiDB cluster

There can be a small delay between the pod being up and running, and the service being available. You can watch list services available with:

watch "kubectl get svc -n tidb"

When you see `demo-tidb` appear, you can `Control + C`. The service is ready to connect to!

You can connect to the clustered service within the Kubernetes cluster:

kubectl run -n tidb mysql-client --rm -i --tty --image mysql -- mysql -P 4000 -u root -h $(kubectl get svc demo-tidb -n tidb -o jsonpath='{.spec.clusterIP}') -p
When you see `demo-tidb` appear, you can <kbd>Ctrl</kbd>+<kbd>C</kbd>. The service is ready to connect to!

Congratulations, you are now up and running with a distributed TiDB database compatible with MySQL!

In addition to connecting to TiDB within the Kubernetes cluster, you can also establish a tunnel between the TiDB service and your Cloud Shell. This is recommended only for debugging purposes, because the tunnel will not automatically be transferred if your Cloud Shell restarts. To establish a tunnel:
To connect to TiDB within the Kubernetes cluster, you can establish a tunnel between the TiDB service and your Cloud Shell. This is recommended only for debugging purposes, because the tunnel will not automatically be transferred if your Cloud Shell restarts. To establish a tunnel:

kubectl -n tidb port-forward demo-tidb-0 4000:4000 &>/tmp/port-forward.log &
kubectl -n tidb port-forward svc/demo-tidb 4000:4000 &>/tmp/port-forward.log &

From your Cloud Shell:

sudo apt-get install -y mysql-client &&
mysql -h 127.0.0.1 -u root -P 4000 -p
mysql -h 127.0.0.1 -u root -P 4000

Try out a MySQL command inside your MySQL terminal:

select tidb_version();

If you did not specify a password in helm, set one now:

SET PASSWORD FOR 'root'@'%' =
SET PASSWORD FOR 'root'@'%' = '<change-to-your-password>';

_Note that, this command contains some special characters which cannot be
auto-populated in the google cloud shell tutorial: you need to copy and paste it into your console manually._

Congratulations, you are now up and running with a distributed TiDB database compatible with MySQL!

## Scale out the TiDB cluster

Expand Down

0 comments on commit d953b0c

Please sign in to comment.