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