在这个例子中,会在Kubernetes集群中部署这样一个应用:
它是一个PHP网站,并同时运行3个副本来保证高可用;
这个PHP网站在Redis里存储了一个数据,不定期进行读写;
这个Redis服务由1个Matser节点和2个Slave节点组成高可用集群,读请求由Slave处理,写请求则交给Master。
系统环境
操作系统版本:CentOS Linux release 7.2.1511 (Core)
内核版本:3.10.0-327.36.2.el7.x86_64
Docker版本:1.10.3
Kubernetes版本:v1.2.0
Kubernetes集群环境
Kubernets集群由1个Master节点和3个Minion节点组成:
192.168.80.159 kube-master
192.168.80.160 kube-minion1
192.168.80.161 kube-minion2
192.168.80.162 kube-minion3
说明:实例中用到的docker镜像均已pull至本地,并添加到私有仓库中。
部署流程
启动Redis Master
首先使用ReplicationController创建一个Redis Master Pod,然后创建该Pod的Service。
redis-master-rc.json
资源文件如下:
{
"kind":"ReplicationController",
"apiVersion":"v1",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis-master"
}
},
"spec":{
"replicas":1,
"selector":{
"name":"redis-master"
},
"template":{
"metadata":{
"labels":{
"name":"redis-master" }
},
"spec":{
"containers":[
{
"name":"master",
"image":"192.168.80.128:5000/redis",
"ports":[ { "containerPort":6379 } ] }
]