apiVersion:v1
kind:ReplicationController
metadata:
name:redis-master
labels:
name:redis-master
spec:
replicas:1 //一个副本
selector:
name:redis-master //该RC控制label中key=name&&value=redis-master的所有pod
template: //pod启动的模版
metadata:
labels:
name:redis-master
spec:
s: //定义pod中的docker容器,可以有多个
- name:master
image:XXX/redis-master //指定容器镜像
ports:
- Port:6379
kubectl create -f xxx.yaml
在Master节点执行命令apiVersion:v1
kind:Service
metadata:
name : redis-master
labels:
name : redis-master
spec:
ports:
- port : 6379 //Service暴露的虚端口
targetPort : 6379 //提供该服务的容器所暴露的端口
selector:
name : redis-master //该Service拥有label中key=name&&value=redis-master的所有pod
kubectl get rc/pods/services
可查看k8s中的rc/pod或service列表apiVersion:v1
kind:ReplicationController
metadata:
name:redis-slave
labels:
name:redis-slave
spec:
replicas:2 //两个副本
selector:
name:redis-slave
template: //pod启动的模版
metadata:
labels:
name:redis-slave
spec:
s: //定义pod中的docker容器,可以有多个
- name:master
image:XXX/redis-slave //指定容器镜像
env : //设定容器中的一个环境变量
- name : GET_HOSTS_FROM
value : env
ports:
- Port:6379
apiVersion:v1
kind:Service
metadata:
name : redis-slave
labels:
name : redis-slave
spec:
ports:
- port : 6379 //Service暴露的虚端口
selector:
name : redis-slave
$GET_HOSTS_FROM
,确定有结果为env
则从环境变量中根据服务名读取其ip与端口apiVersion : v1
kind : Service
metadata :
name : frontend
labels :
name : frontend
spec :
type : NodePort //指定NodePort模式暴露外网端口
ports :
- port : 80 //pod暴漏的端口
nodePort : 30001 //NodePort,用户访问的端口,默认为30000~32767
selector :
name : frontend
spec :
ports :[
{
name : http
protocol :tcp
port : 80
targetPort : 9376
},
{
name : https
protocol :tcp
port : 443
targetPort : 9377
}
]
kind : ReplicationController
....
spec :
....
template :
...
spec :
volumes :
- name : "Persistent-storage" //定义卷名
hostPath :
path : "/data" //宿主机路径
s:
...
volumeMounts :
- name : "Persistent-storage" //对应Pod的卷名
mountPath : "/data" //容器挂载路径
apiVersion : v1
kind : Namespace
metadata :
name : development //定义一个新的Namespace