当前位置: 首页 > news >正文

电子商务网站建设与管理的理解r语言网站开发

电子商务网站建设与管理的理解,r语言网站开发,新媒体营销成功案例,做平面的网站一、背景 Kubernetes v1.26 为 StatefulSet 引入了一个新的 Alpha 级别特性#xff0c;可以控制 Pod 副本的序号。从 Kubernetes v1.27 开始#xff0c;此特性进级到 Beta 阶段。序数可以从任意非负数开始#xff0c; 那么该如何使用此功能呢#xff1f;StatefulSet 序号为…一、背景 Kubernetes v1.26 为 StatefulSet 引入了一个新的 Alpha 级别特性可以控制 Pod 副本的序号。从 Kubernetes v1.27 开始此特性进级到 Beta 阶段。序数可以从任意非负数开始 那么该如何使用此功能呢StatefulSet 序号为 Pod 副本提供顺序标识。当使用 OrderedReady Pod 管理策略时 Pod 是从序号索引 0 到 N-1 顺序创建的。如今使用 Kubernetes 跨集群编排 StatefulSet 迁移具有挑战性。虽然存在备份和恢复解决方案但这些解决方案需要在迁移之前将应用程序的副本数缩为 0。在当今这个完全互联的世界中即使是计划内的应用停机可能也无法实现你的业务目标。可以使用级联删除或 OnDelete 策略来迁移单个 Pod 但是这很容易出错并且管理起来很乏味。当 Pod 出现故障或被逐出时将失去 StatefulSet 控制器的自我修复优势。Kubernetes v1.26 使 StatefulSet 能够负责 {0…N-1} 范围内的一系列序数序数 0、1、… 直到 N-1。有了它可以缩小源集群中的范围 {0…k-1}并扩大目标集群中的互补范围 {k…N-1}同时保证应用程序可用性这使在编排跨集群迁移时保留至多一个语义意味着最多有一个具有给定身份的 Pod 在 StatefulSet 中运行和滚动更新行为。假设在一个集群中运行 StatefulSet并且需要将其迁移到另一个集群需要这样做的原因有很多 可扩展性StatefulSet 对于集群而言规模过大并且已经开始破坏集群中其他工作负载的服务质量 隔离性在一个供多个用户访问的集群中运行 StatefulSet而命名空间隔离是不够的 集群配置想将 StatefulSet 迁移到另一个集群以使用在当前集群上不存在的某些环境 控制平面升级想将 StatefulSet 迁移到运行着较高版本控制平面 并且无法处承担就地升级控制平面所产生的风险或预留停机时间。 二、使用 ① 先决条件 在集群上启用 StatefulSetStartOrdinal 特性门控并使用自定义的 .spec.ordinals.start 创建一个 StatefulSet。在此演示中将使用新机制将 StatefulSet 从一个 Kubernetes 集群迁移到另一个Bitnami Helm chart 将用于安装 redis-cluster。所需工具yq、helm。为此需要两个可以访问公共网络和存储的 Kubernetes 集群已将集群命名为 source 和 destination。具体来说 在两个集群上都启用 StatefulSetStartOrdinal 特性门控 kubectl 的客户端配置允许我以管理员身份访问这两个集群 两个集群上都安装了相同的 StorageClass并设置为两个集群的默认 StorageClass这个 StorageClass 应该提供可从一个或两个集群访问的底层存储 一种扁平的网络拓扑允许 Pod 向任一集群中的 Pod 发送数据包和从中接收数据包如果在云提供商上创建集群则此配置可能被称为私有云或私有网络。 ② 步骤 在两个集群上创建一个用于演示的命名空间 kubectl create ns kep-3335在 source 集群中部署一个有六个副本的 Redis 集群 helm repo add bitnami https://charts.bitnami.com/bitnami helm install redis --namespace kep-3335 \bitnami/redis-cluster \--set persistence.size1Gi \--set cluster.nodes6检查 source 集群中的副本状态 kubectl exec -it redis-redis-cluster-0 -- /bin/bash -c \redis-cli -c -h redis-redis-cluster -a $(kubectl get secret redis-redis-cluster -o jsonpath{.data.redis-password} | base64 -d) CLUSTER NODES;2ce30362c188aabc06f3eee5d92892d95b1da5c3 10.104.0.14:637916379 myself,master - 0 1669764411000 3 connected 10923-16383 7743661f60b6b17b5c71d083260419588b4f2451 10.104.0.16:637916379 slave 2ce30362c188aabc06f3eee5d92892d95b1da5c3 0 1669764410000 3 connected 961f35e37c4eea507cfe12f96e3bfd694b9c21d4 10.104.0.18:637916379 slave a8765caed08f3e185cef22bd09edf409dc2bcc61 0 1669764411000 1 connected 7136e37d8864db983f334b85d2b094be47c830e5 10.104.0.15:637916379 slave 2cff613d763b22c180cd40668da8e452edef3fc8 0 1669764412595 2 connected a8765caed08f3e185cef22bd09edf409dc2bcc61 10.104.0.19:637916379 master - 0 1669764411592 1 connected 0-5460 2cff613d763b22c180cd40668da8e452edef3fc8 10.104.0.17:637916379 master - 0 1669764410000 2 connected 5461-10922在 destination 集群中部署一个零副本的 Redis 集群 helm install redis --namespace kep-3335 \bitnami/redis-cluster \--set persistence.size1Gi \--set cluster.nodes0 \--set redis.extraEnvVars\[0\].nameREDIS_NODES,redis.extraEnvVars\[0\].valueredis-redis-cluster-headless.kep-3335.svc.cluster.local \--set existingSecretredis-redis-cluster将源集群中的 redis-redis-cluster StatefulSet 副本数缩小 1 以删除副本 redis-redis-cluster-5 kubectl patch sts redis-redis-cluster -p {spec: {replicas: 5}}将依赖从 source 集群迁移到 destionation 集群以下命令将依赖资源从 source 复制到 destionation其中与 destionation 集群无关的详细信息已被删除例如uid、resourceVersion、status kubectl get pvc redis-data-redis-redis-cluster-5 -o yaml | yq del(.metadata.uid, .metadata.resourceVersion, .metadata.annotations, .metadata.finalizers, .status) /tmp/pvc-redis-data-redis-redis-cluster-5.yaml kubectl get pv $(yq .spec.volumeName /tmp/pvc-redis-data-redis-redis-cluster-5.yaml) -o yaml | yq del(.metadata.uid, .metadata.resourceVersion, .metadata.annotations, .metadata.finalizers, .spec.claimRef, .status) /tmp/pv-redis-data-redis-redis-cluster-5.yaml kubectl get secret redis-redis-cluster -o yaml | yq del(.metadata.uid, .metadata.resourceVersion) /tmp/secret-redis-redis-cluster.yaml如果使用配置了 reclaimPolicy: Delete 的 StorageClass 应该在删除之前使用 reclaimPolicy: Retain 修补 source 中的 PV 以保留 destination 中使用的底层存储。对于 PV/PVC此过程仅在 PV 使用的底层存储系统支持复制到 destination 集群时才有效可能不支持与特定节点或拓扑关联的存储。此外某些存储系统可能会在 PV 对象之外存储有关卷的附加元数据并且可能需要更专门的序列来导入卷。 kubectl create -f /tmp/pv-redis-data-redis-redis-cluster-5.yaml kubectl create -f /tmp/pvc-redis-data-redis-redis-cluster-5.yaml kubectl create -f /tmp/secret-redis-redis-cluster.yaml将 destination 集群中的 redis-redis-cluster StatefulSet 扩容 1起始序号为 5 kubectl patch sts redis-redis-cluster -p {spec: {ordinals: {start: 5}, replicas: 1}}检查 destination 集群中的副本状态 kubectl exec -it redis-redis-cluster-5 -- /bin/bash -c \redis-cli -c -h redis-redis-cluster -a $(kubectl get secret redis-redis-cluster -o jsonpath{.data.redis-password} | base64 -d) CLUSTER NODES;我应该看到新副本标记为 myself已加入 Redis 集群IP 地址与 source 集群中的副本归属于不同的 CIDR 块 2cff613d763b22c180cd40668da8e452edef3fc8 10.104.0.17:637916379 master - 0 1669766684000 2 connected 5461-10922 7136e37d8864db983f334b85d2b094be47c830e5 10.108.0.22:637916379 myself,slave 2cff613d763b22c180cd40668da8e452edef3fc8 0 1669766685609 2 connected 2ce30362c188aabc06f3eee5d92892d95b1da5c3 10.104.0.14:637916379 master - 0 1669766684000 3 connected 10923-16383 961f35e37c4eea507cfe12f96e3bfd694b9c21d4 10.104.0.18:637916379 slave a8765caed08f3e185cef22bd09edf409dc2bcc61 0 1669766683600 1 connected a8765caed08f3e185cef22bd09edf409dc2bcc61 10.104.0.19:637916379 master - 0 1669766685000 1 connected 0-5460 7743661f60b6b17b5c71d083260419588b4f2451 10.104.0.16:637916379 slave 2ce30362c188aabc06f3eee5d92892d95b1da5c3 0 1669766686613 3 connected对剩余的副本重复上面的步骤直到 source 集群中的 Redis StatefulSet 副本缩放为 0 并且 destination 集群中的 Redis StatefulSet 健康总共有 6 个副本。 三、总结 此特性为跨集群拆分 StatefulSet 提供了一项基本支撑技术但没有规定 StatefulSet 的迁移机制。迁移需要对 StatefulSet 副本的协调以及对存储和网络层的编排这取决于使用 StatefulSet 安装的应用程序的存储和网络连接要求。此外许多 StatefulSet 由 operator 管理这也增加了额外的迁移复杂性。
http://www.hkea.cn/news/14312864/

相关文章:

  • 计算机网络技术网站建设方向四川建设网地址在哪
  • 江西哪家网站建设公司好酒店vi设计公司
  • 北京网站设计公司youx成都柚米科技15成都开发网站建设
  • 建设网站话术福州网上办事大厅
  • 柳州网站设计天津做不锈钢的网站
  • 浙江住房和城乡建设厅网站首页天河外贸型网站建设
  • 网站空间续费多钱一年wordpress图片验证码插件
  • 义乌网站开发公司黄页号码怎么查
  • 网站内容的排版布局网上装修公司网站策划书
  • 电脑小游戏网站wordpress插件登录公众号
  • 电子商务网站建设的一般步骤网站开发遇到的问题及解决方法
  • 闲鱼怎么做钓鱼网站免费注册网站平台
  • 常德经开区网站官网微网站在哪个平台上搭建好 知乎
  • 东莞模板建站平台哪种语言的网站 做seo更好
  • 网站发布方式 提高iis能建设网站吗
  • 网站建设整体策划制作网页多少钱
  • 贞丰县建设局网站wordpress如何适配手机
  • 上海 专业网站设计 母婴类百度小程序制作
  • 网站红蓝色配色分析网站空间是不是服务器
  • 开发区网站建设delphi 网站开发
  • 网站备案需要花钱吗贵州省城乡建设厅网站材料价
  • flash做网站轮播图wordpress前台登录认证失败
  • 云南省建设网站百度网站建设前期都有哪些费用
  • 滕州做网站的创新的商城网站建设
  • 网站建设对于企业发展的优势wordpress清理插件
  • 怎么建立网站 个人热点网站设计制作在哪能看
  • 重庆网站备案注销wordpress attachment
  • 网站1g的空间能用多久建设主管部门指定网站
  • 网站基础知识域名5个点秦皇岛市属于哪个省
  • 泰安微信网站制作百度推广如何计费