Add Kubernetes config for vtctld.

This commit is contained in:
Anthony Yeh 2014-10-13 17:48:30 -07:00
Родитель 559e598458
Коммит fb4a75378b
3 изменённых файлов: 88 добавлений и 1 удалений

Просмотреть файл

@ -6,7 +6,7 @@ appropriate [Getting Started Guide](https://github.com/GoogleCloudPlatform/kuber
to get Kubernetes up and running if you haven't already. We currently test to get Kubernetes up and running if you haven't already. We currently test
against HEAD, so you may want to build Kubernetes from the latest source. against HEAD, so you may want to build Kubernetes from the latest source.
## ZooKeeper ## Starting ZooKeeper
Once you have a running Kubernetes deployment, make sure Once you have a running Kubernetes deployment, make sure
*kubernetes/cluster/kubecfg.sh* is in your path, and then run: *kubernetes/cluster/kubecfg.sh* is in your path, and then run:
@ -43,3 +43,49 @@ To tear down the ZooKeeper deployment (again, with *kubecfg.sh* in your path):
``` ```
vitess$ examples/kubernetes/zk-down.sh vitess$ examples/kubernetes/zk-down.sh
``` ```
## Starting vtctld
The vtctld server provides a web interface to inspect the state of the system,
and also accepts RPC commands to modify the system.
```
vitess/examples/kubernetes$ kubecfg.sh -c vtctld-pod.yaml create pods
vitess/examples/kubernetes$ kubecfg.sh -c vtctld-service.yaml create services
```
To access vtctld from your workstation, open up port 15000 to any minion in your
firewall. Then get the external address of that minion and visit http://<minion-addr>:15000/.
## Issuing commands with vtctlclient
If you've opened port 15000 on your minion's firewall, you can run *vtctlclient*
locally to issue commands:
```
# check the connection to vtctld, and list available commands
$ sudo docker run -ti --rm vitess/root vtctlclient -server <minion-addr>:15000
# create a global keyspace record
$ sudo docker run -ti --rm vitess/root vtctlclient -server <minion-addr>:15000 CreateKeyspace my_keyspace
```
If you don't want to open the port on the firewall, you can SSH into one of your
minions and perform the above commands against the minion's local Kubernetes proxy.
For example:
```
# log in to a minion
$ gcloud compute ssh kubernetes-minion-1
# run a command
kubernetes-minion-1:~$ sudo docker run -ti --rm vitess/root vtctlclient -server $HOSTNAME:15000 CreateKeyspace your_keyspace
```
## Creating a keyspace and shard
```
$ alias vtctl="sudo docker run -ti --rm vitess/root vtctlclient -server <minion-addr>:15000"
$ vtctl CreateKeyspace test_keyspace
$ vtctl CreateShard test_keyspace/0
```

Просмотреть файл

@ -0,0 +1,32 @@
apiVersion: v1beta1
kind: Pod
id: vtctld
desiredState:
manifest:
version: v1beta1
id: vtctld
containers:
- name: vtctld
image: vitess/root
volumeMounts:
- name: syslog
mountPath: /dev/log
- name: vtdataroot
mountPath: /vt/vtdataroot
command:
- sh
- "-c"
- >-
echo "{\"test_cell\":\"$SERVICE_HOST:2181\",\"global\":\"$SERVICE_HOST:2181\"}" > /vt/zk-client-conf.json &&
chown vitess /vt/* &&
su -p -c "/vt/bin/vtctld -debug -templates $VTTOP/go/cmd/vtctld/templates -log_dir $VTDATAROOT/tmp -port 15000" vitess
env:
- name: ZK_CLIENT_CONFIG
value: /vt/zk-client-conf.json
volumes:
- name: syslog
source: {hostDir: {path: /dev/log}}
- name: vtdataroot
source: {emptyDir: {}}
labels:
name: vtctld

Просмотреть файл

@ -0,0 +1,9 @@
apiVersion: v1beta1
kind: Service
id: vtctld
port: 15000
containerPort: 15000
selector:
name: vtctld
labels:
name: vtctld