1、 Endpoints
Endpoints可以把外部的链接到k8s系统中,如下
将一个mysql连接到k8s中。
kind: Endpoints
apiVersion: v1
metadata:
name: mysql-production
namespace: test
subsets:
- addresses:
- ip: 10.0.0.82
ports:
- port: 3306
10.0.0.xx:3306为外部mysql。
namespace: test为命名空间
2、 service
部署一个内部虚拟IP,其他deployment可以链接。
apiVersion: v1
kind: Service
metadata:
name: mysql-production
namespace: test
spec:
ports:
- port: 3306
port: 3306为内部IP
name: mysql-production为service名称
此时mysql-production.test即为mysql的虚拟IP,其他可配置该字段连接到mysql,例如
"java","-Dspring.datasource.url=jdbc:mysql://mysql-production.test:3306/config", "-jar", "xxx.jar"
spec.selector : Selector配置,将选择具有指定label标签的Pod作为管理范围
NodePort: 使用宿主机的端口,使能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务;
3、deployment
部署一个Pod,内部只能链接service,无法互相链接
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: xxxx
namespace: test
spec:
replicas: 1
selector:
matchLabels:
app: xxxx
template:
metadata:
labels:
app: xxxx
spec:
containers:
- name: xxxx
image: xx/xx/xx:xxx
ports:
- containerPort: 8080