https://blog.csdn.net/zhou164200/article/details/84590720

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/v1     #指定API版本标签
kind: Deployment        #定义资源的类型/角色,deployment为控制器,service,endpoints
metadata:               #定义资源的元数据信息
  name: nginx-deployment        #定义资源的名称,在同一个namespace空间中必须是唯一的
  labels:               #定义资源标签
    app: nginx
spec:
  replicas: 2           #定义副本数量
  selector:             #定义选择器
    matchLabels:        #匹配上边的标签
      app: nginx        #定义模板名称
  template:             #定义模板
    metadata:
      labels:
        app: nginx
    spec:
      containers:               #定义容器信息
      - name: nginx1            #容器名,与标签名要相同
        image: nginx:1.14.2     #容器使用的镜像以及版本
        ports:
        - containerPort: 80     #定义容器的对外接口
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐