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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如果用户在 阿里云容器服务平台 上创建了独享专有的Kubernetes集群(dedicated kubernetes cluster),那么用户将对集群的管理节点和工作节点享有完全的控制能力,其中Etcd集群是Kubernetes集群中一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。

如果用户在 阿里云容器服务平台 上创建了独享专有的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

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 Prometheus Kubernetes
解决k8s调度不均衡问题
在近期的工作中,我们发现 k8s 集群中有些节点资源使用率很高,有些节点资源使用率很低,我们尝试重新部署应用和驱逐 Pod,发现并不能有效解决负载不均衡问题。在学习了 Kubernetes 调度原理之后,重新调整了 Request 配置,引入了调度插件,才最终解决问题。这篇就来跟大家分享 Kubernetes 资源和调度相关知识,以及如何解决k8s调度不均衡问题。
2476 0
解决k8s调度不均衡问题
|
Kubernetes 应用服务中间件 HSF
容器服务 kubernetes(ACK)中应用优雅上下线
容器服务 kubernetes(ACK)中应用优雅上下线
7627 0
|
开发者 Docker 容器
DockerFile的ADD和COPY的区别
DockerFile的ADD和COPY的区别
4785 0
|
存储 Kubernetes 安全
Kubernetes 中如何对 etcd 进行备份和还原
Kubernetes 中如何对 etcd 进行备份和还原
|
4月前
|
人工智能 IDE 定位技术
通义灵码 AI IDE 正式上线,智能体自动写代码,首创自动记忆,工程感知全面升级
阿里云发布的通义灵码AI IDE深度适配千问3大模型,集成智能编码助手功能,支持编程智能体、工具调用、工程感知等能力。其核心亮点包括:支持最强开源模型千问3,全面集成通义灵码插件能力,自带编程智能体模式,支持长期记忆与行间建议预测(NES)。通义灵码已覆盖主流IDE,助力开发者实现高效智能编程,插件下载量超1500万,生成代码超30亿行,成为国内最受欢迎的辅助编程工具。立即体验更智能的开发流程!
1529 1
|
Kubernetes Cloud Native Java
云原生|kubernetes|ingress-nginx插件部署(kubernetes-1.23和最新版controller-1.6.4)
云原生|kubernetes|ingress-nginx插件部署(kubernetes-1.23和最新版controller-1.6.4)
2273 0
|
存储 Kubernetes Cloud Native
云原生|kubernetes|etcd集群详细介绍+安装部署+调优
云原生|kubernetes|etcd集群详细介绍+安装部署+调优
2993 1
|
负载均衡 Kubernetes 混合部署
k8s 中externalTrafficPolicy应用场景和实践
在Kubernetes(K8s)中,`externalTrafficPolicy` 是一个用于控制服务的外部流量的策略。这个字段可以在 `Service` 的定义中设置,其主要作用是决定服务对外部请求的负载均衡行为。具体来说,`externalTrafficPolicy` 有两个可选值: 1. `Cluster`: 默认值。当设置为 `Cluster` 时,服务将负载均衡流量到所有的 Pod,无论这些 Pod 是否在同一节点上。这意味着即使请求来自于同一节点的多个 Pod,流量也可能被负载均衡到不同的节点上。 ```yaml apiVersion: v1 kind: Se
1377 1
|
存储 Kubernetes 安全
kubernetes集群备份与恢复
k8s集群服务所有组件都是无状态服务,所有数据都存储在etcd集群当中,所以为保证k8s集群的安全可以直接备份etcd集群数据,备份etcd的数据相当于直接备份k8s整个集群。
2452 1

相关产品

  • 容器服务Kubernetes版