apiVersion: apps/v1 #指定API版本标签 kind: Deployment #定义资源的类型/角色,deployment为控制器,service,endpoints metadata: #定义资源的元数据信息 name: iota-webapi-deployment #定义资源的名称,在同一个namespace空间中必须是唯一的 namespace: lk #默认default labels: #定义资源标签 app: yaml-iota-webapi-d spec: replicas: 1 #定义副本数量 selector: #定义选择器 matchLabels: #匹配上边的标签 app: yaml-iota-webapi-d #名称 template: #定义模板 metadata: labels: app: yaml-iota-webapi-d spec: containers: #定义容器信息 - name: yaml-iota-webapi #容器名,与标签名要相同 image: repository.anxinyun.cn/iota/web-console-api:50.21-05-24 #容器使用的镜像以及版本 imagePullPolicy: IfNotPresent #获取镜像的策略 Alawys表示下载镜像 IfNotPresent 表示优先使用本地镜像,否则下载镜像,Never表示仅使用本地镜像 env: #环境变量 - name: "IOTA_SERVER_PORT" #变量的名字 value: "9080" #变量的值 - name: "IOTA_KAFKA_BROKERS" value: "kafka-service:9092" - name: "IOTA_ZOOKEEPER_NODES" value: "kafka-service:2182" - name: "IOTA_MQTT_BROKERS" value: "emqx-service:1883" - name: "IOTA_REDIS_SERVER_HOST" value: "redis-service" - name: "IOTA_POSTGRES" value: "postgres://postgres:example@pg-service:5432/iota" - name: "IOTA_ATTACHMENT_IN_CLOUD" value: "true" - name: "IOTA_PROMETHEUS_SERVER" value: "iota-prometheus-service:19090" ports: - containerPort: 9080 #定义容器的端口 name: tcp-9080 volumeMounts: #改容器内无法修改hosts 挂载出来修改 - name: vol-hosts #挂载设备的名字,与volumes[*].name 需要对应 mountPath: /etc/hosts # 容器的数据目录 volumes: # volumes和container处于同一层级,别搞错了 - name: vol-hosts hostPath: path: /etc/hosts # 宿主机目录 覆盖容器内目录 间接统一hosts --- apiVersion: v1 #指定API版本标签 kind: Service #定义资源的类型/角色,Deployment为控制器,Service,endpoints metadata: #定义资源的元数据信息 name: iota-webapi-service #定义资源的名称,在同一个namespace空间中必须是唯一的 namespace: lk #默认default labels: #定义资源标签 app: iota-webapi-s spec: selector: app: yaml-iota-webapi-d #deployment标签 type: NodePort ports: - protocol: TCP port: 9080 # 集群内访问 targetPort: 9080 #集群内 容器内端口 name: tcp-9080 #nodePort: 30980 #集群外访问 范围30000-32767