apiVersion: v1
kind: Service
metadata:
  name: etcd
  namespace: discov
spec:
  ports:
    - name: etcd-port
      port: 2379
      protocol: TCP
      targetPort: 2379
  selector:
    app: etcd

---

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: etcd
    etcd_node: etcd0
  name: etcd0
  namespace: discov
spec:
  containers:
    - command:
        - /usr/local/bin/etcd
        - --name
        - etcd0
        - --initial-advertise-peer-urls
        - http://etcd0:2380
        - --listen-peer-urls
        - http://0.0.0.0:2380
        - --listen-client-urls
        - http://0.0.0.0:2379
        - --advertise-client-urls
        - http://etcd0:2379
        - --initial-cluster
        - etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380,etcd4=http://etcd4:2380
        - --initial-cluster-state
        - new
      image: registry-vpc.cn-hangzhou.aliyuncs.com/xapp/etcd:latest
      name: etcd0
      ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: server
          protocol: TCP
  imagePullSecrets:
    - name: aliyun
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: app
                operator: In
                values:
                  - etcd
          topologyKey: "kubernetes.io/hostname"
  restartPolicy: Always

---

apiVersion: v1
kind: Service
metadata:
  labels:
    etcd_node: etcd0
  name: etcd0
  namespace: discov
spec:
  ports:
    - name: client
      port: 2379
      protocol: TCP
      targetPort: 2379
    - name: server
      port: 2380
      protocol: TCP
      targetPort: 2380
  selector:
    etcd_node: etcd0

---

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: etcd
    etcd_node: etcd1
  name: etcd1
  namespace: discov
spec:
  containers:
    - command:
        - /usr/local/bin/etcd
        - --name
        - etcd1
        - --initial-advertise-peer-urls
        - http://etcd1:2380
        - --listen-peer-urls
        - http://0.0.0.0:2380
        - --listen-client-urls
        - http://0.0.0.0:2379
        - --advertise-client-urls
        - http://etcd1:2379
        - --initial-cluster
        - etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380,etcd4=http://etcd4:2380
        - --initial-cluster-state
        - new
      image: registry-vpc.cn-hangzhou.aliyuncs.com/xapp/etcd:latest
      name: etcd1
      ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: server
          protocol: TCP
  imagePullSecrets:
    - name: aliyun
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: app
                operator: In
                values:
                  - etcd
          topologyKey: "kubernetes.io/hostname"
  restartPolicy: Always

---

apiVersion: v1
kind: Service
metadata:
  labels:
    etcd_node: etcd1
  name: etcd1
  namespace: discov
spec:
  ports:
    - name: client
      port: 2379
      protocol: TCP
      targetPort: 2379
    - name: server
      port: 2380
      protocol: TCP
      targetPort: 2380
  selector:
    etcd_node: etcd1

---

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: etcd
    etcd_node: etcd2
  name: etcd2
  namespace: discov
spec:
  containers:
    - command:
        - /usr/local/bin/etcd
        - --name
        - etcd2
        - --initial-advertise-peer-urls
        - http://etcd2:2380
        - --listen-peer-urls
        - http://0.0.0.0:2380
        - --listen-client-urls
        - http://0.0.0.0:2379
        - --advertise-client-urls
        - http://etcd2:2379
        - --initial-cluster
        - etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380,etcd4=http://etcd4:2380
        - --initial-cluster-state
        - new
      image: registry-vpc.cn-hangzhou.aliyuncs.com/xapp/etcd:latest
      name: etcd2
      ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: server
          protocol: TCP
  imagePullSecrets:
    - name: aliyun
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: app
                operator: In
                values:
                  - etcd
          topologyKey: "kubernetes.io/hostname"
  restartPolicy: Always

---

apiVersion: v1
kind: Service
metadata:
  labels:
    etcd_node: etcd2
  name: etcd2
  namespace: discov
spec:
  ports:
    - name: client
      port: 2379
      protocol: TCP
      targetPort: 2379
    - name: server
      port: 2380
      protocol: TCP
      targetPort: 2380
  selector:
    etcd_node: etcd2

---

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: etcd
    etcd_node: etcd3
  name: etcd3
  namespace: discov
spec:
  containers:
    - command:
        - /usr/local/bin/etcd
        - --name
        - etcd3
        - --initial-advertise-peer-urls
        - http://etcd3:2380
        - --listen-peer-urls
        - http://0.0.0.0:2380
        - --listen-client-urls
        - http://0.0.0.0:2379
        - --advertise-client-urls
        - http://etcd3:2379
        - --initial-cluster
        - etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380,etcd4=http://etcd4:2380
        - --initial-cluster-state
        - new
      image: registry-vpc.cn-hangzhou.aliyuncs.com/xapp/etcd:latest
      name: etcd3
      ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: server
          protocol: TCP
  imagePullSecrets:
    - name: aliyun
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: app
                operator: In
                values:
                  - etcd
          topologyKey: "kubernetes.io/hostname"
  restartPolicy: Always

---

apiVersion: v1
kind: Service
metadata:
  labels:
    etcd_node: etcd3
  name: etcd3
  namespace: discov
spec:
  ports:
    - name: client
      port: 2379
      protocol: TCP
      targetPort: 2379
    - name: server
      port: 2380
      protocol: TCP
      targetPort: 2380
  selector:
    etcd_node: etcd3

---

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: etcd
    etcd_node: etcd4
  name: etcd4
  namespace: discov
spec:
  containers:
    - command:
        - /usr/local/bin/etcd
        - --name
        - etcd4
        - --initial-advertise-peer-urls
        - http://etcd4:2380
        - --listen-peer-urls
        - http://0.0.0.0:2380
        - --listen-client-urls
        - http://0.0.0.0:2379
        - --advertise-client-urls
        - http://etcd4:2379
        - --initial-cluster
        - etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380,etcd4=http://etcd4:2380
        - --initial-cluster-state
        - new
      image: registry-vpc.cn-hangzhou.aliyuncs.com/xapp/etcd:latest
      name: etcd4
      ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: server
          protocol: TCP
  imagePullSecrets:
    - name: aliyun
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: app
                operator: In
                values:
                  - etcd
          topologyKey: "kubernetes.io/hostname"
  restartPolicy: Always

---

apiVersion: v1
kind: Service
metadata:
  labels:
    etcd_node: etcd4
  name: etcd4
  namespace: discov
spec:
  ports:
    - name: client
      port: 2379
      protocol: TCP
      targetPort: 2379
    - name: server
      port: 2380
      protocol: TCP
      targetPort: 2380
  selector:
    etcd_node: etcd4
