繁体   English   中英

K8s 有状态集 DNS

[英]K8s Statefulset DNS

我正在制作一个自定义的 REDIS StatefulSet yaml。 到目前为止,我已经成功部署了该应用程序,但是 REDIS SLAVE 存在问题。 它找不到主人,我也没有猜测 DNS 配置错误的原因。

我的 StatefulSet 看起来像这样:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis-server
  namespace: scm
  labels:
    app.k8s/name: redis
    app.k8s/instance: server
spec:
  replicas: 3
  serviceName: redis-server
  
  selector:
    matchLabels:
      app.k8s/name: redis
      app.k8s/instance: server
  
  template:
    metadata:
      labels:
        app.k8s/name: redis
        app.k8s/instance: server
    spec:
      containers:
        - name: redis-server
          image: redis:6.0.9-alpine
          imagePullPolicy: IfNotPresent
          command: ["redis-server", "/data/conf/redis.conf"]
          ports:
            - name: redis
              containerPort: 6379

和一个看起来像这样的无头服务:

apiVersion: v1
kind: Service
metadata:
  name: redis-server-headless
  namespace: scm
  labels:
    app.k8s/name: redis
    app.k8s/instance: server
    app.k8s/part-of: gitlab
spec:
  type: ClusterIP
  clusterIP: None
  publishNotReadyAddresses: true
  ports:
    - name: server
      port: 6379
      protocol: TCP
      targetPort: redis
  selector:
    app.k8s/name: redis
    app.k8s/instance: server

当我执行nslookup redis-server-headless我可以找到 IP 地址,但是当我尝试ping redis-server-0.redis-server-headlessping redis-server-0.redis-server我收到错误地址错误信息。

我错过了什么?

您的 redis statefuleset 的serviceName应该是redis-server-headless

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM