NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

OpenShift 3.11 推出 Kubernetes Federation V2 预览版

  • 2019-01-03
  • 本文字数:1689 字

    阅读完需:约 6 分钟

OpenShift 3.11推出Kubernetes Federation V2预览版

随着数据中心遍布全球,用户越来越多地寻求跨区域或集群传播其应用或服务的方法。这种需求由多种用例驱动:实现多集群负载均衡,避免单集群故障造成巨大损失;通过可访问和使用多集群的混合云解决方案避免提供商锁定。


Red Hat 一直在研究 Kubernetes Multicluster Special Interest Group(SIG)和 Federation Working Group,近日发布在 OpenShift 3.11 上的 Kubernetes Federation V2 预览版本,旨在允许用户通过单一 API 将服务和工作负载部署到多个集群。

目的

Red Hat 对多集群问题的探索出于用户需求推动,其用例包括:


  • 将应用程序、服务和策略分发到多集群;

  • 应用程序和服务迁移及其在集群之间的存储;

  • 应用程序和服务的灾难恢复。


为了满足这些需求并尽可能获取广泛受众,Red Hat 在设计时考虑了模块化,这意味着已经添加接受个别特殊用例的能力,并且改变系统行为,可用于自定义资源。

Federation V2 简介

Federation V2 是 Kubernetes 运营商利用自定义资源定义,提供管理 Kubernetes Cluster Registry 跟踪的多个 Kubernetes 集群应用和服务工具。Federation 允许用户将工作负载部署到集群注册表,使用有关工作负载信息对 DNS 进行编程,并动态调整部署工作负载的不同集群副本。随着 Federation 的成熟,Red Hat 也打算添加处理存储、工作负载等功能。

Federation 概念


从根本上说,Federation 必须配置两种类型信息:


  • Federation 要处理的 API 类型信息

  • Federation 目标分发集群资源


对于 Federation 处理的每种 API 类型,声明状态的不同部分存在于不同的 API 资源中:


  • “template”类型包含资源的基本规范;

  • “placement”类型包含资源应分发到的集群规范;

  • 可选“overrides”类型包含在某些集群中更改模板资源的规范;


Propagation 是指资源如何分配到目标集群,目前存在主动协调方法。其中,Federation 运行控制器,该控制器主动将资源推送到目标集群。Scheduling 是指决策能力,可以决定工作负载如何在不同集群中传播,类似于人为操作。


最后,部署在多个集群中的应用程序和服务经常需要将外部请求路由到其中一个服务集群的 DNS 记录,Federation 的 DNS 功能为服务或入口的每个端点维护 DNS 条目。

示例

本示例展示使用 Deployment 资源的情况,此示例描述了分布在两个集群上的 Deployment 资源,其中一个集群是 3 副本,另一个集群是 5 副本。


Deployment 的基本定义位于 FederatedDeployment 中:


apiVersion: core.federation.k8s.io/v1alpha1kind: FederatedDeploymentmetadata:  name: test-deployment  namespace: test-namespacespec:  template:    metadata:      labels:        app: nginx    spec:      replicas: 3      selector:        matchLabels:          app: nginx      template:        metadata:          labels:            app: nginx        spec:          containers:          - image: nginx            imagePullPolicy: Always            name: nginx
复制代码


具有相同名称的 FederatedDeploymentPlacement 资源包含有关 Deployment 应存在的集群信息:


apiVersion: core.federation.k8s.io/v1alpha1 kind: FederatedDeploymentPlacementmetadata:  name: test-deployment  namespace: test-namespacespec:  clusternames:    - cluster2    - cluster1
复制代码


FederatedDeploymentOverrides 同名资源包含有关如何在某些集群中区分副本的信息:


apiVersion: core.federation.k8s.io/v1alpha1 kind: FederatedDeploymentOverridemetadata:  name: test-deployment  namespace: test-namespacespec:  overrides:    - clusterName: cluster2      replicas: 5
复制代码


此时,只能覆盖给定 Federation 类型的单个字段(在“Deployments”情况下是“replicas”字段)。 如果必须在成员集群初始创建目标资源时进行应用覆盖,则应在 Template 资源之前创建 Override 资源。

未来

Red Hat 在 Kubernetes 社区的下一步改进由 Federation 开发者预览版收到的反馈驱动,如果你对该功能感兴趣并希望 Federation 在某些部分进行改进,可以在社区中进行反馈。


参考链接:https://blog.openshift.com/kubernetes-federation-v2-on-openshift-3-11/


2019-01-03 17:386688
用户头像
赵钰莹 InfoQ 主编

发布了 875 篇内容, 共 605.8 次阅读, 收获喜欢 2671 次。

关注

评论

发布
暂无评论
发现更多内容

MASA MAUI Plugin 安卓蓝牙低功耗(一)蓝牙扫描

MASA技术团队

.net MASA MAUI Xamarin

通过爬虫爬取一些图片

吉师职业混子

9月月更

史上最详细vue的入门基础

楠羽

Vue 笔记 9月月更

那些你不知道的炫酷按钮交互效果

南城FE

CSS 前端 动画 交互设计 按钮

2022-09-19:给定字符串 S and T,找出 S 中最短的(连续)子串 W ,使得 T 是 W 的 子序列 。 如果 S 中没有窗口可以包含 T 中的所有字符,返回空字符串 ““。 如果有不

福大大架构师每日一题

算法 rust 福大大

面对全新的编程语言,这些思路可以帮助你察觉漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞利用

ScrumMaster可不是项目经理!

ShineScrum捷行

Scrum ScrumMaster 项目经理

【数据结构】五分钟带你了解及自定义有向图

迷彩

数据结构 算法 无向图 9月月更 有向图

在windows电脑上配置kubectl远程操作kubernetes

程序员欣宸

Kubernetes 9月月更

挑战30天学完Python:Day3夯实基础-布尔值和运算符

MegaQi

9月月更 挑战30天学完Python

Chrome操作指南——入门篇(六)console.injector

Augus

Chrome开发者工具 9月月更

NGINX 的未来:回到开源的初心

NGINX开源社区

nginx Kubernetes nginx 开源版 NGINX Kubernetes Gateway NGINX Amplify

PLG SaaS 产品 Figma 商业模式拆解

程序员泥瓦匠

SaaS

Qt|ListWidget控件总结

中国好公民st

List qt 9月月更

【JVM】深入解读G1垃圾回收器

小明Java问道之路

并发 垃圾回收 GC G1垃圾回收器 9月月更

高并发之负载均衡

源字节1号

软件开发

2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

福大大架构师每日一题

golang 福大大 选择题

《简单记个笔记》之部分CSS选择器介绍

吉师职业混子

9月月更

Flomesh 多租户 Ingress Controller

Flomesh

Service Mesh 服务网格

OKR之剑·理念篇02: OKR布道之旅

vivo互联网技术

团队管理 OKR 目标管理

【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)

Albert Edison

C语言 9月月更 strlen strstr strtok

Python教程之Python简介

智趣匠

编程语言 9月月更 Python简介

[极致用户体验] 多页面应用里,「网页内返回」按钮,何时用 history.back 何时用 replaceState?

HullQin

CSS JavaScript html 前端 9月月更

Chrome操作指南——入门篇(五)Snippets

Augus

Chrome开发者工具 9月月更

Chrome操作指南——入门篇(七)console中的await和log

Augus

Chrome开发者工具 9月月更

行业方案|“机场”行业智能运维解决方案介绍

云智慧AIOps社区

解决方案 智能运维 运维管理 智能运维AIOps 监控安全

Python 教程之变量

智趣匠

变量 9月月更 Python语法

Python语法之数据类型

智趣匠

Python 数据类型 9月月更

Orbeon form 的安装和使用教程

Jerry Wang

typescript SAP Hybris form 9月月更

《简单记个笔记》之表单标签加CSS选择器

吉师职业混子

9月月更

【JVM】深入解析G1的并发标记与三色标记

小明Java问道之路

GC 三色标记 G1垃圾回收器 9月月更 并发标记

OpenShift 3.11推出Kubernetes Federation V2预览版_服务革新_赵钰莹_InfoQ精选文章