美文网首页
Statefulset

Statefulset

作者: CokeCode | 来源:发表于2021-03-22 16:16 被阅读0次
  1. 创建Headless Service
  • Headless Service: 为Statefulset中的每个pod提供Pod id解析,使得客户端可以访问Service后端的所有Pod资源。
  • 创建Headless Service时,YAML的kind还是Service,只要把clusterIP的值设置为None即可将Service定义为Headless
apiVersion: v1
kind: Service
metadata:
  namespace: string 
  name: string
spec:
  clusterIP: None
  ports:
  - name: string
    port: int
    targetPort: int
  selector:
    string: string
  1. 创建Statefulset
  • Statefulset:管理有状态的应用,提供唯一的网络id、有序的扩展、删除和更新等功能。
  • Statefulset的kindStatefulSet
  • 要在serviceName字段关联上述创建的Headless Service
  • 默认的pod创建和删除是串行的,要改成并行,把podManagementPolicy设置为Parallel

一个使用StatefulSet创建Eureka集群的示例如下:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: eureka
  name: eureka
  namespace: string
spec:
  podManagementPolicy: Parallel
  replicas: 3
  serviceName: eureka
  selector:
    matchLabels:
      app: eureka
  template:
    metadata:
      labels:
        app: eureka
    spec:
      containers:
        - env:
          - name: EUREKA_INSTANCE_HOSTNAME
            value: '${MY_POD_NAME}.eureka'
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.name
          image:
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /
              port: 7001
              scheme: HTTP
            initialDelaySeconds: 120
            periodSeconds:5
            successThreshold: 1
            timeoutSeconds: 5
          name: eureka
          ports:
            - containerPort: 7001
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /
              port: 7001
              scheme: HTTP
            initialDelaySeconds: 120
            periodSeconds: 60
            successThreshold:1
            timeoutSeconds: 5
          resources:
            limits:
              cpu: '1'
              memory: 1Gi

访问:

curl eureka-0.eureka:7001
curl eureka-1.eureka:7001
curl eureka-2.eureka:7001

或通过Service的方式访问:

curl eureka:7001

向此Headless Service发送的请求,不再由Service资源代理转发,而是由DNS服务器接到查询请求时以轮询的方式返回IP地址,请求直接根据IP地址接入到具体的POD。

相关文章

网友评论

      本文标题:Statefulset

      本文链接:https://www.haomeiwen.com/subject/agigqltx.html