iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
IoT

從開源kubernetes雲端運算到kubeedge雲邊協同系列 第 26

Day 26 KubeEdge小專題: InfluxDB部署

  • 分享至 

  • xImage
  •  

在使用Grafana之前得先佈署好資料庫,因為Grafana需要從資料庫中取出資料才能作呈現。
底下是佈署的YAML清單:

# edge-influxdb.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: default
  annotations:
  creationTimestamp: null
  generation: 1
  labels:
    app: influxdb
  name: influxdb
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: influxdb
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: influxdb
    spec:
      containers:
      - envFrom:
        - secretRef:
            name: influxdb-creds
        image: docker.io/influxdb:1.7.7
        imagePullPolicy: IfNotPresent
        name: influxdb
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/lib/influxdb
          subPath: influxdb
          name: var-lib-influxdb
        ports:
        - name: influxdb
          containerPort: 8086
          hostPort: 8086
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: var-lib-influxdb
        hostPath:
          path: /mnt/influxdb
      nodeSelector:
        name: edge-1

幾個比較重要的地方是:

  • secret
    在spec.spec.containers下第一行可以看到envForm,下面的- secretRef下接的便是secret的名稱,用來調用預先創建過的secret。
  • 網路配置
    spec.spec.containers.ports中定義了containerPorts以及hostPort皆為8086,透過nodePort的方式存取資料庫。
  • 儲存空間配置
    spec.spec.volumes中宣告hostPath的目錄,也就是之後資料的存放目錄
    spec.spec.containers.volumeMounts中則是根據volumes中的name去對應到儲存目錄位置,並掛載入容器中

最後用nodeSelector將服務佈署至指定節點上。

接著在佈署之前,別忘了先創建好secret:

kubectl create secret generic influxdb-creds \
  --from-literal=INFLUXDB_DATABASE=db \
  --from-literal=INFLUXDB_USERNAME=telegraf \
  --from-literal=INFLUXDB_PASSWORD=telegraf \
  --from-literal=INFLUXDB_HOST=influxdb

kubectl get secret

kubectl apply -f edge-influxdb.yaml


上一篇
Day 25 KubeEdge小專題: 邊緣端資料庫備份
下一篇
Day 27 KubeEdge小專題: Grafana部署
系列文
從開源kubernetes雲端運算到kubeedge雲邊協同30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言