--- apiVersion: apps/v1 kind: StatefulSet metadata: name: supervisor labels: app: supervisor spec: serviceName: supervisor-svc replicas: 3 selector: matchLabels: app: supervisor template: metadata: labels: app: supervisor spec: hostAliases: - ip: "192.168.40.127" hostnames: - "bigdata-127" - ip: "192.168.40.151" hostnames: - "bigdata-151" - ip: "192.168.40.152" hostnames: - "bigdata-152" - ip: "192.168.40.203" hostnames: - "slave1" #限制一台服务器上启动太多的服务,因端口占用或者资源问题导致出错 affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: "app" operator: In values: - supervisor topologyKey: "kubernetes.io/hostname" podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: "app" operator: In values: - supervisor topologyKey: "kubernetes.io/hostname" terminationGracePeriodSeconds: 300 #容器的配置 containers: - name: k8s-supervisor #0表示以root权限运行容器 securityContext: runAsUser: 0 imagePullPolicy: Always image: 192.168.40.153:9080/tsg/storm:1.0.2 resources: requests: memory: "10Gi" cpu: 500m #标注映射的端口 ports: - containerPort: 9097 name: server #创建容器后执行的命令 command: - sh - -c - "/opt/apache-storm-1.0.2/start_storm.sh storm supervisor" #环境变量 env: - name: ZK_PORTS value: "2182" - name: NIMBUS_IP value: "nimbus-0.nimbus-svc.default.svc.cluster.local" # - name: NIMBUS_IP # valueFrom: # fieldRef: # fieldPath: spec.nodeName - name: ZK_IPARR value: "zk-0.zk-hs.default.svc.cluster.local" - name: SPORTS value: "30" - name: WORKER_MEM value: "2048" #挂载目录 volumeMounts: - name: datadir mountPath: /opt/apache-storm-1.0.2/logs securityContext: runAsUser: 1000 fsGroup: 1000 #声明pvc volumeClaimTemplates: - metadata: name: datadir spec: accessModes: [ "ReadWriteMany" ] storageClassName: nfs resources: requests: storage: 5Gi