Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve workflow in docs/google-kubernetes-tutorial.md #400

Merged
merged 12 commits into from
Apr 19, 2019
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 server's external IP address.
cofyc marked this conversation as resolved.
Show resolved Hide resolved
{{- end -}}
27 changes: 10 additions & 17 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
tennix marked this conversation as resolved.
Show resolved Hide resolved

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

Expand All @@ -79,7 +75,6 @@ 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 &&
tennix marked this conversation as resolved.
Show resolved Hide resolved
helm init --service-account tiller --upgrade

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 tidb-scheduler and tidb-controller-manager are `Running`, `Control + C` and proceed to launch a TiDB cluster!
cofyc marked this conversation as resolved.
Show resolved Hide resolved

## Deploy your first TiDB cluster

Expand All @@ -123,29 +118,27 @@ There can be a small delay between the pod being up and running, and the service

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

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