国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

k8s與etcd--備份etcd數(shù)據(jù)到s3

arashicage / 1376人閱讀

摘要:可想而知,的重要性。因而做好數(shù)據(jù)備份工作至關重要。備份數(shù)據(jù)到能做的備份方案很多,但是大同小異,基本上都是利用了命令來完成。設置一下,就可以幫助我們定時刪除舊數(shù)據(jù),保留新的備份數(shù)據(jù)。部署方案選擇中的比較合適,我的備份策略是每三小時備份一次。

前言

整個k8s諸多組件幾乎都是無狀態(tài)的,所有的數(shù)據(jù)保存在etcd里,可以說etcd是整個k8s集群的數(shù)據(jù)庫。可想而知,etcd的重要性。因而做好etcd數(shù)據(jù)備份工作至關重要。這篇主要講一下我司的相關的實踐。

備份etcd數(shù)據(jù)到s3

能做etcd的備份方案很多,但是大同小異,基本上都是利用了etcdctl命令來完成。

為什么選擇s3那?

因為我們單位對于aws使用比較多,另外我們希望我們備份到一個高可用的存儲中,而不是部署etcd的本機中。

此外,s3支持存儲的生命周期的設置。設置一下,就可以aws幫助我們定時刪除舊數(shù)據(jù),保留新的備份數(shù)據(jù)。

具體方案

我們基本上用了etcd-backup這個項目,當然也fork了,做了稍微的更改,主要是更改了dockerfile。將etcdctl 修改為我們線上實際的版本。

修改之后的dockerfile如下:

FROM alpine:3.8

RUN apk add --no-cache curl

# Get etcdctl
ENV ETCD_VER=v3.2.24
RUN 
  cd /tmp && 
  curl -L https://storage.googleapis.com/etcd/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz | 
  tar xz -C /usr/local/bin --strip-components=1

COPY ./etcd-backup /
ENTRYPOINT ["/etcd-backup"]
CMD ["-h"]

之后就是docker build之類了。

k8s部署方案

選擇k8s中的cronjob比較合適,我的備份策略是每三小時備份一次。

cronjob.yaml:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: etcd-backup
  namespace: kube-system
spec:
  schedule: "0 */4 * * *"
  successfulJobsHistoryLimit: 2
  failedJobsHistoryLimit: 2
  jobTemplate:
    spec:
      # Job timeout
      activeDeadlineSeconds: 300
      template:
        spec:
          tolerations:
          # Tolerate master taint
          - key: node-role.kubernetes.io/master
            operator: Exists
            effect: NoSchedule
          # Container creates etcd backups.
          # Run container in host network mode on G8s masters
          # to be able to use 127.0.0.1 as etcd address.
          # For etcd v2 backups container should have access
          # to etcd data directory. To achive that,
          # mount /var/lib/etcd3 as a volume.
          nodeSelector:
            node-role.kubernetes.io/master: ""
          containers:
          - name: etcd-backup
            image: iyacontrol/etcd-backup:0.1
            args:
            # backup guest clusters only on production instalations
            # testing installation can have many broken guest clusters
            - -prefix=k8s-prod-1
            - -etcd-v2-datadir=/var/lib/etcd
            - -etcd-v3-endpoints=https://172.xx.xx.221:2379,https://172.xx.xx.83:2379,https://172.xx.xx.246:2379
            - -etcd-v3-cacert=/certs/ca.crt
            - -etcd-v3-cert=/certs/server.crt
            - -etcd-v3-key=/certs/server.key
            - -aws-s3-bucket=mybucket
            - -aws-s3-region=us-east-1
            volumeMounts:
            - mountPath: /var/lib/etcd
              name: etcd-datadir
            - mountPath: /certs
              name: etcd-certs
            env:
              - name: ETCDBACKUP_AWS_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: etcd-backup
                    key: ETCDBACKUP_AWS_ACCESS_KEY
              - name: ETCDBACKUP_AWS_SECRET_KEY
                valueFrom:
                  secretKeyRef:
                    name: etcd-backup
                    key: ETCDBACKUP_AWS_SECRET_KEY
              - name: ETCDBACKUP_PASSPHRASE
                valueFrom:
                  secretKeyRef:
                    name: etcd-backup
                    key: ETCDBACKUP_PASSPHRASE
          volumes:
          - name: etcd-datadir
            hostPath:
              path: /var/lib/etcd
          - name: etcd-certs
            hostPath:
              path: /etc/kubernetes/pki/etcd/
          # Do not restart pod, job takes care on restarting failed pod.
          restartPolicy: Never
          hostNetwork: true
   

注意:容忍 和 nodeselector配合,讓pod調度到master節(jié)點上。

然后secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: etcd-backup
  namespace: kube-system
type: Opaque
data:
  ETCDBACKUP_AWS_ACCESS_KEY: QUtJTI0TktCT0xQRlEK
  ETCDBACKUP_AWS_SECRET_KEY: aXJ6eThjQnM2MVRaSkdGMGxDeHhoeFZNUDU4ZGRNbgo=
  ETCDBACKUP_PASSPHRASE: ""
總結

之前我們嘗試過,etcd-operator來完成backup。實際使用過程中,發(fā)現(xiàn)并不好,概念很多,組件復雜,代碼很多寫法太死。

最后選擇etcd-backup。主要是因為簡單,less is more。看源碼,用golang編寫,擴展自己的一些需求,也比較簡單。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32840.html

相關文章

  • k8setcd--備份etcd數(shù)據(jù)s3

    摘要:可想而知,的重要性。因而做好數(shù)據(jù)備份工作至關重要。備份數(shù)據(jù)到能做的備份方案很多,但是大同小異,基本上都是利用了命令來完成。設置一下,就可以幫助我們定時刪除舊數(shù)據(jù),保留新的備份數(shù)據(jù)。部署方案選擇中的比較合適,我的備份策略是每三小時備份一次。 前言 整個k8s諸多組件幾乎都是無狀態(tài)的,所有的數(shù)據(jù)保存在etcd里,可以說etcd是整個k8s集群的數(shù)據(jù)庫。可想而知,etcd的重要性。因而做好e...

    yintaolaowanzi 評論0 收藏0
  • k8setcd--備份etcd數(shù)據(jù)s3

    摘要:可想而知,的重要性。因而做好數(shù)據(jù)備份工作至關重要。備份數(shù)據(jù)到能做的備份方案很多,但是大同小異,基本上都是利用了命令來完成。設置一下,就可以幫助我們定時刪除舊數(shù)據(jù),保留新的備份數(shù)據(jù)。部署方案選擇中的比較合適,我的備份策略是每三小時備份一次。 前言 整個k8s諸多組件幾乎都是無狀態(tài)的,所有的數(shù)據(jù)保存在etcd里,可以說etcd是整個k8s集群的數(shù)據(jù)庫。可想而知,etcd的重要性。因而做好e...

    alaege 評論0 收藏0
  • Rancher 2.2 GA:企業(yè)進入應用跨多K8S集群、混合云部署新時代

    摘要:此次發(fā)布的版本包含對和的支持,以及對的支持。版本中,的進階版監(jiān)控功能以尊重多租戶環(huán)境邊界的方式部署了和。為應用目錄程序提供了特定于集群和項目的配置。在全球擁有超過一億的下載量,超過家企業(yè)客戶。 Rancher 2.2 GA版本引入的創(chuàng)造性新功能,將進一步實現(xiàn)Kubernetes-as-a-service,使企業(yè)用戶能夠專注于加速創(chuàng)新和推動業(yè)務價值。 showImg(https://se...

    NoraXie 評論0 收藏0
  • etcd管理,證書配置,擴展,遷移恢復,帶證書擴展節(jié)點

    摘要:廣告各版本離線安裝包證書配置生產環(huán)境中給配置證書相當重要,如果沒有證書,那么集群很容易被黑客利用而去挖礦什么的。細節(jié)問題非常多,一個端口,一個都不要填錯,否則就會各種錯誤包括新加節(jié)點要清數(shù)據(jù)這些小細節(jié)問題。 廣告 | kubernetes各版本離線安裝包 etcd 證書配置 生產環(huán)境中給etcd配置證書相當重要,如果沒有證書,那么k8s集群很容易被黑客利用而去挖礦什么的。做法非常簡單...

    張漢慶 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<