阿里云容器服务ACK集群上如何使用ack-etcd-backup-operator定期自动对ETCD集群数据做备份

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 如果用户在 [阿里云容器服务平台](https://cs.console.aliyun.com) 上创建了独享专有的Kubernetes集群(dedicated kubernetes cluster),那么用户将对集群的管理节点和工作节点享有完全的控制能力,其中Etcd集群是Kubernetes集群中一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。 本文旨在介绍如何使用 [a

如果用户在 阿里云容器服务平台 上创建了独享专有的Kubernetes集群(dedicated kubernetes cluster),那么用户将对集群的管理节点和工作节点享有完全的控制能力,其中Etcd集群是Kubernetes集群中一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。

本文旨在介绍如何使用 ack-etcd-backup-operator 完成自动化定期备份Etcd集群数据到 阿里云对象存储服务OSS

1. 部署ack-etcd-backup-operator

登录 阿里云容器服务控制台 -> 市场 -> 应用目录,找到ack-etcd-backup-operator并点击进入配置页面:
image

点击 参数 并依次配置以下信息:

1.1 etcdEndpoints (Required)

配置etcd集群对外暴露的访问端口:

etcdEndpoints: 
  - https://<master1_ip>:2379
  - https://<master2_ip>:2379
  - https://<master3_ip>:2379

1.2 clientTLSSecret(Required)

配置访问etcd集群所需要的certs信息:

clientTLSSecret:
    name: etcd-client-tls-secret
    # caBase64Encode is the ca.pem base64 encode context
    caBase64Encode: <cat /etc/kubernetes/pki/etcd/ca.pem |base64 -w 0>
    # certBase64Encode is the cert.pem base64 encode context
    certBase64Encode: <cat /etc/kubernetes/pki/etcd/etcd-client.pem |base64 -w 0>
    # keyBase64Encode is the key.pem base64 encode context
    keyBase64Encode: <cat /etc/kubernetes/pki/etcd/etcd-client-key.pem |base64 -w 0>

1.3 backupPolicy (Optional)

默认参数为每隔一天备份一次,最大保存30个的数量

backupPolicy:
    # backupIntervalInSecond is used to set how long to backup the etcd snapshot to oss, default is
    # 86400 seconds(1 day)
    backupIntervalInSecond: 86400
    # maxBackups is used to set max numbers of etcd backups, default to 30
    maxBackups: 30

ps: 若设置backupIntervalInSecond86400,则第一次创建backup的时间为创建etcdbackup资源86400s后, 这里需要改进一下。 您可以先设置为60, 测试没问题后再edit编辑etcdbackup资源修改backupIntervalInSecond为您期望的时间值。

1.4 oss (Required)

例如我需要把etcd数据备份到杭州区域下名为ls-etcd的oss bucket下,备份文件名称为cdc14f05fb6da4b8e8690d82d64eaff3f/etcd-backup, 则oss的配置为:

spec:
    # store etcd backup to OSS Bucket
    storageType: OSS
    oss:
      # oss bukcet name
      bucket: ls-etcd
      # etcd backup file name
      backupName: c1e989bfdbbe64b60b888ec4a62ee8d78/etcd-backup
      # secretName is the AK file to access oss bucket
      secretName: etcd-backup-oss-credential
      # oss endpoint, details about regions and endpoints see: https://www.alibabacloud.com/help/doc-detail/31837.htm 
      endpoint: oss-cn-hangzhou.aliyuncs.com
      # accessKeyID base64 encode context
      accessKeyIDBase64Encode: <echo -n "your accessKeyID"|base64 -w 0>
      # accessKeySecret base64 encode context
      accessKeySecretBase64Encode: <echo -n "your accessKeySecret"|base64 -w 0>

若AK信息为子账号AK,则需授权RAM Policy如下:

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:PutObject",
                "oss:GetObject",
                "oss:DeleteObject",
                "oss:GetBucket",
                "oss:PutBucket",
                "oss:ListObjects",
                "oss:ListBuckets"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}

1.4 选择命名空间并部署

image

2. 查看备份是否自动生成

2.1 查看etcdbackup的状态

未完成备份时的状态如下:

$ kubectl -n etcd-backup-operator get etcdbackup  ack-etcd-backup-operator -oyaml
...
status:
  lastSuccessDate: null
  succeeded: false

完成备份的状态如下:

$ kubectl -n etcd-backup-operator get etcdbackup  ack-etcd-backup-operator -oyaml
...
status:
  etcdRevision: 2698883
  etcdVersion: 3.3.8
  lastSuccessDate: 2019-09-18T09:17:30Z
  succeeded: true

ps: 若清理ack-etcd-backup-operator时删除不点etcdbackup资源,可以使用
kubectl -n etcd-backup-operator edit etcdbackup ack-etcd-backup-operator
删掉以下字段并保存:

finalizers:
  - backup-operator-periodic

2.2 查看oss bucket上是否有备份数据

image

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6天前
|
专有云 Serverless 持续交付
亚太唯一,阿里云再度入选Gartner®容器管理魔力象限领导者
Gartner正式发布 2024《容器管理魔力象限》报告,阿里云再度成为中国唯一一家入选「领导者象限」的科技公司。
|
2天前
|
人工智能 专有云 Serverless
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
15 2
|
5天前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
27天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
阿里云ACK容器服务生产级可观测体系建设实践
|
14天前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
57 0
|
19天前
|
Kubernetes 应用服务中间件 nginx
k8s学习--k8s集群使用容器镜像仓库Harbor
本文介绍了在CentOS 7.9环境下部署Harbor容器镜像仓库,并将其集成到Kubernetes集群的过程。环境中包含一台Master节点和两台Node节点,均已部署好K8s集群。首先详细讲述了在Harbor节点上安装Docker和docker-compose,接着通过下载Harbor离线安装包并配置相关参数完成Harbor的部署。随后介绍了如何通过secret和serviceaccount两种方式让Kubernetes集群使用Harbor作为镜像仓库,包括创建secret、配置节点、上传镜像以及创建Pod等步骤。最后验证了Pod能否成功从Harbor拉取镜像运行。
|
20天前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
90 17
|
13天前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
111 1
|
18天前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
59 1
|
18天前
|
负载均衡 应用服务中间件 nginx
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
36 1

相关产品

  • 容器服务Kubernetes版