apiVersion: v1 kind: Service metadata: name: nimbus-svc labels: app: nimbus spec: ports: - port: 6627 targetPort: 6627 name: server protocol: TCP nodePort: 6627 type: NodePort selector: app: nimbus --- apiVersion: apps/v1 kind: StatefulSet metadata: name: nimbus spec: serviceName: nimbus-svc replicas: 1 selector: matchLabels: app: nimbus template: metadata: labels: app: nimbus 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: - nimbus topologyKey: "kubernetes.io/hostname" podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: "app" operator: In values: - nimbus topologyKey: "kubernetes.io/hostname" terminationGracePeriodSeconds: 300 #容器的配置 containers: - name: k8s-nimbus #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: 6627 name: server #创建容器后执行的命令 command: - sh - -c - "/opt/apache-storm-1.0.2/start_storm.sh storm nimbus" #环境变量 env: - name: ZK_PORTS value: "2182" - 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/test securityContext: runAsUser: 1000 fsGroup: 1000 #声明pvc volumeClaimTemplates: - metadata: name: datadir spec: accessModes: [ "ReadWriteMany" ] storageClassName: nfs resources: requests: storage: 5Gi