Commit 4a3ccabb authored by Chao Xu's avatar Chao Xu

update example/guestbook-go to v1beta3

parent e73fa8b8
...@@ -135,14 +135,6 @@ func TestExampleObjectSchemas(t *testing.T) { ...@@ -135,14 +135,6 @@ func TestExampleObjectSchemas(t *testing.T) {
"redis-master-service": &api.Service{}, "redis-master-service": &api.Service{},
"redis-slave-service": &api.Service{}, "redis-slave-service": &api.Service{},
}, },
"../examples/guestbook-go/v1beta3": {
"guestbook-controller": &api.ReplicationController{},
"redis-slave-controller": &api.ReplicationController{},
"redis-master-controller": &api.ReplicationController{},
"guestbook-service": &api.Service{},
"redis-master-service": &api.Service{},
"redis-slave-service": &api.Service{},
},
"../examples/walkthrough": { "../examples/walkthrough": {
"pod1": &api.Pod{}, "pod1": &api.Pod{},
"pod2": &api.Pod{}, "pod2": &api.Pod{},
......
{ {
"apiVersion": "v1beta1", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"id": "guestbook-controller", "metadata":{
"desiredState": { "name":"guestbook",
"replicas": 3, "labels":{
"replicaSelector": { "name": "guestbook" }, "name":"guestbook"
"podTemplate": { }
"desiredState": { },
"manifest": { "spec":{
"version": "v1beta1", "replicas":3,
"id": "guestbook-controller", "selector":{
"containers": [{ "name":"guestbook"
"image": "kubernetes/guestbook:v2",
"name": "guestbook",
"ports": [{ "name": "http-server", "containerPort": 3000 }]
}]
}
}, },
"labels": { "name": "guestbook" } "template":{
} "metadata":{
}, "labels":{
"labels": { "name": "guestbook" } "name":"guestbook"
}
},
"spec":{
"containers":[
{
"image":"kubernetes/guestbook:v2",
"name":"guestbook",
"ports":[
{
"name":"http-server",
"containerPort":3000,
"protocol":"TCP"
}
]
}
]
}
}
}
} }
{ {
"apiVersion": "v1beta1", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"id": "guestbook", "metadata":{
"port": 3000, "name":"guestbook",
"containerPort": "http-server", "labels":{
"selector": { "name": "guestbook" }, "name":"guestbook"
"createExternalLoadBalancer": true }
},
"spec":{
"createExternalLoadBalancer": true,
"ports": [
{
"port":3000,
"targetPort":"http-server",
"protocol":"TCP"
}
],
"selector":{
"name":"guestbook"
}
}
} }
{ {
"apiVersion": "v1beta1", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"id": "redis-master-controller", "id":"redis-master",
"desiredState": { "metadata":{
"replicas": 1, "name":"redis-master",
"replicaSelector": { "name": "redis", "role": "master" }, "labels":{
"podTemplate": { "name":"redis",
"desiredState": { "role":"master"
"manifest": { }
"version": "v1beta1", },
"id": "redis-master-controller", "spec":{
"containers": [{ "replicas":1,
"name": "redis-master", "selector":{
"image": "gurpartap/redis", "name":"redis",
"ports": [{ "name": "redis-server", "containerPort": 6379 }] "role":"master"
}]
}
}, },
"labels": { "name": "redis", "role": "master" } "template":{
} "metadata":{
}, "labels":{
"labels": { "name": "redis", "role": "master" } "name":"redis",
"role":"master"
}
},
"spec":{
"containers":[
{
"name":"redis-master",
"image":"gurpartap/redis",
"ports":[
{
"name":"redis-server",
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
} }
{ {
"apiVersion": "v1beta1", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"id": "redis-master", "metadata":{
"port": 6379, "name":"redis-master",
"containerPort": "redis-server", "labels":{
"selector": { "name": "redis", "role": "master" } "name":"redis",
"role":"master"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":"redis-server",
"protocol":"TCP"
}
],
"selector":{
"name":"redis",
"role":"master"
}
}
} }
{ {
"apiVersion": "v1beta1", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"id": "redis-slave-controller", "id":"redis-slave",
"desiredState": { "metadata":{
"replicas": 2, "name":"redis-slave",
"replicaSelector": { "name": "redis", "role": "slave" }, "labels":{
"podTemplate": { "name":"redis",
"desiredState": { "role":"slave"
"manifest": { }
"version": "v1beta1", },
"id": "redis-slave-controller", "spec":{
"containers": [{ "replicas":2,
"name": "redis-slave", "selector":{
"image": "gurpartap/redis", "name":"redis",
"command": ["sh", "-c", "redis-server /etc/redis/redis.conf --slaveof redis-master 6379"], "role":"slave"
"ports": [{ "name": "redis-server", "containerPort": 6379 }]
}]
}
}, },
"labels": { "name": "redis", "role": "slave" } "template":{
} "metadata":{
}, "labels":{
"labels": { "name": "redis", "role": "slave" } "name":"redis",
"role":"slave"
}
},
"spec":{
"containers":[
{
"name":"redis-slave",
"image":"gurpartap/redis",
"command":[
"sh",
"-c",
"redis-server /etc/redis/redis.conf --slaveof redis-master 6379"
],
"ports":[
{
"name":"redis-server",
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
} }
{ {
"apiVersion": "v1beta1", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"id": "redis-slave", "metadata":{
"port": 6379, "name":"redis-slave",
"containerPort": "redis-server", "labels":{
"labels": { "name": "redis", "role": "slave" }, "name":"redis",
"selector": { "name": "redis", "role": "slave" } "role":"slave"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":"redis-server",
"protocol":"TCP"
}
],
"selector":{
"name":"redis",
"role":"slave"
}
}
} }
## GuestBook v1beta3 example
This example shows how to build a simple, multi-tier web application using Kubernetes and Docker.
The example consists of:
- A web frontend
- A redis master (for storage and a replicated set of redis slaves)
The web front end interacts with the redis master via javascript redis API calls.
The v1beta3 API is not enabled by default. The kube-apiserver process needs to run with the --runtime_config=api/v1beta3 argument. Use the following command to enable it:
$sudo sed -i 's|KUBE_API_ARGS="|KUBE_API_ARGS="--runtime_config=api/v1beta3 |' /etc/kubernetes/apiserver
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"metadata":{
"name":"guestbook",
"labels":{
"name":"guestbook"
}
},
"spec":{
"replicas":3,
"selector":{
"name":"guestbook"
},
"template":{
"metadata":{
"labels":{
"name":"guestbook"
}
},
"spec":{
"containers":[
{
"image":"kubernetes/guestbook:v2",
"name":"guestbook",
"ports":[
{
"name":"http-server",
"containerPort":3000,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"guestbook",
"labels":{
"name":"guestbook"
}
},
"spec":{
"ports": [
{
"port":3000,
"targetPort":"http-server",
"protocol":"TCP"
}
],
"selector":{
"name":"guestbook"
}
}
}
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"id":"redis-master",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis",
"role":"master"
}
},
"spec":{
"replicas":1,
"selector":{
"name":"redis",
"role":"master"
},
"template":{
"metadata":{
"labels":{
"name":"redis",
"role":"master"
}
},
"spec":{
"containers":[
{
"name":"redis-master",
"image":"gurpartap/redis",
"ports":[
{
"name":"redis-server",
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis",
"role":"master"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":"redis-server",
"protocol":"TCP"
}
],
"selector":{
"name":"redis",
"role":"master"
}
}
}
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"id":"redis-slave",
"metadata":{
"name":"redis-slave",
"labels":{
"name":"redis",
"role":"slave"
}
},
"spec":{
"replicas":1,
"selector":{
"name":"redis",
"role":"slave"
},
"template":{
"metadata":{
"labels":{
"name":"redis",
"role":"slave"
}
},
"spec":{
"containers":[
{
"name":"redis-slave",
"image":"gurpartap/redis",
"command":[
"sh",
"-c",
"redis-server /etc/redis/redis.conf --slaveof redis-master 6379"
],
"ports":[
{
"name":"redis-server",
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-slave",
"labels":{
"name":"redis",
"role":"slave"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":"redis-server",
"protocol":"TCP"
}
],
"selector":{
"name":"redis",
"role":"slave"
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment