在上一篇的文章中我們已經用go把監控程式開發完成,接下來這會講Dockerfie製作和如何取得gcp身份驗證。
在開始製做映像檔時,我們需要把之前申請的服務帳號金鑰(json檔案),拿出來準備和Google Cloud API進行身份驗證。
# dockerfile
# Author: 阿榜
# Version: 1.0.0
FROM golang:1.14.8-alpine3.12 AS builder
LABEL stage=aurora-intermediate
ENV GO111MODULE=on
ADD ./ /go/src/k8swatch
RUN cd /go/src/k8swatch && go build -mod vendor
# final stage
FROM google/cloud-sdk:312.0.0-alpine
COPY --from=builder /go/src/k8swatch/k8swatch /go/src/k8swatch/gcp.json /go/src/k8swatch/run.sh ./
RUN chmod +x ./run.sh
ENV GCP_PORJECT "xxxxx"
ENV GCP_CLUSTER "xxx-xxx"
ENV GOOGLE_APPLICATION_CREDENTIALS "./gcp.json"
CMD ["./run.sh"]
使用gcloud進行身份驗證
#run.sh
#!/bin/bash
gcloud auth activate-service-account --key-file /gcp.json > output.log 2>&1
gcloud container clusters get-credentials $GCP_CLUSTER --zone asia-east1-a --project $GCP_PORJECT > output.log 2>&1
./k8swatch
通過client-go對k8s叢集的操作,我們可以很輕易的達到監控資源的狀況,這次client-go加上telegram可以很容易達成k8s的監控,以便我們能快速掌握系統的變動。
完整範例程式都放在github,有需要請自行下載