StatefulSet暴露每个pod地址

89 篇文章 6 订阅

还是mongo假如使用了hostpath 地址就是IP

apiVersion: v1
kind: Service
metadata:
  name: mongodb-headless
  labels:
    name: mongo
spec:
  ports:
    - port: 27017
      targetPort: 27017
  clusterIP: None
  selector:
    role: mongo

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo
spec:
  selector:
    matchLabels:
      role: mongo
      environment: test
  serviceName: "mongo"
  replicas: 2
  template:
    metadata:
      labels:
        role: mongo
        environment: test
    spec:
      nodeSelector:
        storagenode: nginx
      tolerations:
      - key: "node.kubernetes.io/unreachable"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10
      - key: "node.kubernetes.io/not-ready"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10
      terminationGracePeriodSeconds: 10
      containers:
      - name: mongo
        image: mongo:4.4
        command:
          - mongod
          - "--replSet"
          - rs0
          - "--bind_ip"
          - 0.0.0.0
        ports:
          - containerPort: 27017
        volumeMounts:
          - name: mongo-persistent-storage
            mountPath: /data/db
      - name: mongo-sidecar
        image: cvallance/mongo-k8s-sidecar
        env:
          - name: MONGO_SIDECAR_POD_LABELS
            value: "role=mongo,environment=test"
      volumes:
      - name: mongo-persistent-storage
        hostPath:
          path: /mongo/data
          type: Directory

部署完后端RS都是IP形式显示代码无法入手

  • 因为不是为 Pod 名称创建hostnameA 或 AAAA 记录,所以需要创建 Pod 的 A 或 AAAA 记录。一个没有hostname但有的 Podsubdomain只会为无头服务 ( default-subdomain.my-namespace.svc.cluster-domain.example) 创建 A 或 AAAA 记录,指向 Pod 的 IP 地址。此外,除非在服务上设置,否则 Pod 需要准备好才能有记录publishNotReadyAddresses=True
# kubectl get pods -o wide 
mongo-0                           2/2     Running        0          146m    10.42.0.215   k3s-node-1   <none>           <none>
mongo-1                           2/2     Running        0          4h28m   10.42.2.72    k3s-node-2   <none>           <none>
mongo-2                           2/2     Running        0          78m     10.42.1.6     k3s-node-3   <none>           <none>
# nslookup mongodb-headless
Server:    10.43.0.10
Address 1: 10.43.0.10 kube-dns.kube-system.svc.cluster.local

Name:      mongodb-headless
Address 1: 10.42.1.6 10-42-1-6.mongo-1.iottepa.svc.cluster.local
Address 2: 10.42.0.215 10-42-0-215.mongodb-headless.iottepa.svc.cluster.local
Address 3: 10.42.2.72 10-42-2-72.mongo-2.iottepa.svc.cluster.local

现在加入以下参数什么意思,我就不讲了,自己看下面官网连接更清楚
publishNotReadyAddresses: true

apiVersion: v1
kind: Service
metadata:
  name: mongo-0
  labels:
    name: mongo
spec:
  publishNotReadyAddresses: true
  type: ClusterIP
  ports:
  - name: tcp-server
    port: 27017
    protocol: TCP
    targetPort: 27017
  selector:
     role: mongo
  type: ClusterIP

---
apiVersion: v1
kind: Service
metadata:
  name: mongo-1
  labels:
    name: mongo
spec:
  publishNotReadyAddresses: true
  type: ClusterIP
  ports:
  - name: tcp-server
    port: 27017
    protocol: TCP
    targetPort: 27017
  selector:
     role: mongo
  type: ClusterIP
---

apiVersion: v1
kind: Service
metadata:
  name: mongo-2
  labels:
    name: mongo
spec:
  publishNotReadyAddresses: true
  type: ClusterIP
  ports:
  - name: tcp-server
    port: 27017
    protocol: TCP
    targetPort: 27017
  selector:
     role: mongo
  type: ClusterIP

最后变成这样
在这里插入图片描述

#  nslookup mongo-0
Server:    10.43.0.10
Address 1: 10.43.0.10 kube-dns.kube-system.svc.cluster.local
Name:      mongo-0
Address 1: 10.43.162.12 mongo-0.iottepa.svc.cluster.local
官网参考
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值