开发者社区> 问答> 正文

自动创建服务以及Pod

我有一个Kubernetes场景,我将需要部署3个Redis服务器(pod),每个都需要使用ClusterIP服务公开。就像是;

RedisClusterIP1 - > RedisPod1
RedisClusterIP2 - > RedisPod2
RedisClusterIP3 - > RedisPod3
我有如下的部署计划,但正如您所看到的那样,它是手动创建ClusterIP服务,并将其中的一个绑定到所有pod。

有没有办法设置部署计划,那么它将与Pods创建相同数量的服务?

我检查了部署和副本集,但无法确定是否存在某些内容。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redisharedis
spec:
replicas: 3
template:

metadata:
  labels:
    app: redisharedis
spec:
  containers:
    - name: redisharedis
      image: aozdemir/redisharedis:v6
      resources:
        limits:
          cpu: "1"
          memory: "800Mi"
        requests:
          cpu: "0.1"
          memory: "200Mi"
      ports:
        - containerPort: 6379

apiVersion: v1
kind: Service
metadata:
name: redisharedis-service
labels:

name: redisharedis-service

spec:
ports:

- port: 6379
  targetPort: 6379
  protocol: TCP

selector:

app: redisharedis

type: ClusterIP

展开
收起
k8s小能手 2019-01-09 14:40:30 1686 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    这可以完成如果您正在部署redis群集Statefulset而不是deployment。在Kubernetes 1.9+中,StatefulSet会自动将Pod名称添加为其每个Pod上的标签,因此您可以像这样启用Service-Per-Pod:

    apiVersion: apps/v1beta2
    kind: StatefulSet
    metadata:
    annotations:

    service-per-pod-label: "statefulset.kubernetes.io/pod-name"
    service-per-pod-ports: "80:8080"

    您需要MetaController在kubernetes集群中安装以便为每个pod安装一个服务。

    2019-07-17 23:25:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何让k8s集群30s扩容3000个Pod 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载