kubernetes,几个基础概念。Pod、Service、nameSpace、Secret等。
kind: ReplicationController
spec:
replicas: 1 ----pod副本控制运行数量
selector:
app: mysql ----标签选择器
template: ----pod生成模板
metadata:
labels:
app: mysql ----生成pod标签,此标签已同selector下一致,不然RC每次创建出无法满足selector的pod,只会不断尝试在
建新Pod,循环无解。
spec:
containers: ----容器,有点类似docker的容器写法。
- name: mysql
image: mysql
ports:
- containerPort:3306
env: ----注入到容器内的环境变量
- name: MYSQL_ROOT_PWD
value: "123456"
apiVersion: v1
kind: Service ----Service 用于将Pods形成一个服务集群,会生成clusterIP+端口号,集群内可根据service name来使用service
metadata:
name: mysql
spec:
type: NodePort ----此项可无,加上则此service(svc)开启了nodePort外网访问模式
ports:
- port:3306 ----Service提供服务的端口
nodePort:3306 ----外网访问此服务的端口
selector:
app: mysql ----用来选择service需要的pods
据此,就可以发布自已的服务了。
deployment、replica Set 与ReplicationController基本功能相似,可以看做是RC的升级。
服务里的clusterIP 是虚拟的,利用了DNS域名技术,访问此ip会利用组件kube-proxy进行分发。