k8s 中 service 与 deployment 的关系

deployment 用于配置副本数,和 pods。 service 用于暴露服务,以提供 pod 间的访问与对外提供访问。 关联:

deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app-image:latest
          ports:
            - containerPort: 8080

service:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

在 Service 的 selector 字段中指定与 Deployment 中的 template.metadata.labels 匹配的标签,从而将 Service 关联到 Deployment。例如上面的示例中,Service 的 selector 使用 app: my-app,与 Deployment 中的 template.metadata.labels 匹配。

这样,当 Deployment 创建并运行 Pod 时,Service 将根据其 selector 将请求路由到相应的 Pod,从而实现应用程序的访问。Service 可以通过 ClusterIP、NodePort、LoadBalancer 等方式暴露应用程序,使其可以从集群内部或外部访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值