详情

全站展示位

Serviceトポロジー | Kubernetes

FEATURE STATE: Kubernetes v1.21 [deprecated] 備考: この機能、特にアルファ版のtopologyKeysAPIは、Kubernetes v1.21以降では非推奨です。Kubernetes v1.21で導入された、トポロジーを意識したヒントが同様の機能を提供します。 Serviceトポロジーを利用すると、Serviceのトラフィックをクラスターのノードトポロジーに基づいてルーティングできるようになります。たとえば、あるServiceのトラフィックに対して、できるだけ同じノードや同じアベイラビリティゾーン上にあるエンドポイントを優先してルーティングするように指定できます。 はじめに デフォルトでは、ClusterIPやNodePortServiceに送信されたトラフィックは、Serviceに対応する任意のバックエンドのアドレスにルーティングされる可能性があります。しかし、Kubernetes 1.7以降では、「外部の」トラフィックをそのトラフィックを受信したノード上のPodにルーティングすることが可能になりました。しかし、この機能はClusterIPServiceでは対応しておらず、ゾーン内ルーティングなどのより複雑なトポロジーは実現不可能でした。Serviceトポロジーの機能を利用すれば、Serviceの作者が送信元ノードと送信先ノードのNodeのラベルに基づいてトラフィックをルーティングするためのポリシーを定義できるようになるため、この問題を解決できます。 送信元と送信先の間のNodeラベルのマッチングを使用することにより、オペレーターは、そのオペレーターの要件に適したメトリクスを使用して、お互いに「より近い」または「より遠い」ノードのグループを指定できます。たとえば、パブリッククラウド上のさまざまなオペレーターでは、Serviceのトラフィックを同一ゾーン内に留めようとする傾向があります。パブリッククラウドでは、ゾーンをまたぐトラフィックでは関連するコストがかかる一方、ゾーン内のトラフィックにはコストがかからない場合があるからです。その他のニーズとしては、DaemonSetが管理するローカルのPodにトラフィックをルーティングできるようにしたり、レイテンシーを低く抑えるために同じラック上のスイッチに接続されたノードにトラフィックを限定したいというものがあります。 Serviceトポロジーを利用する クラスターのServiceトポロジーが有効になっていれば、ServiceのspecにtopologyKeysフィールドを指定することで、Serviceのトラフィックのルーティングを制御できます。このフィールドは、Nodeラベルの優先順位リストで、このServiceにアクセスするときにエンドポイントをソートするために使われます。トラフィックは、最初のラベルの値が送信元Nodeのものと一致するNodeに送信されます。一致したノード上にServiceに対応するバックエンドが存在しなかった場合は、2つ目のラベルについて検討が行われ、同様に、残っているラベルが順番に検討されまます。 一致するキーが1つも見つからなかった場合、トラフィックは、Serviceに対応するバックエンドが存在しなかったかのように拒否されます。言い換えると、エンドポイントは、利用可能なバックエンドが存在する最初のトポロジーキーに基づいて選択されます。このフィールドが指定され、すべてのエントリーでクライアントのトポロジーに一致するバックエンドが存在しない場合、そのクライアントに対するバックエンドが存在しないものとしてコネクションが失敗します。「任意のトポロジー」を意味する特別な値"*"を指定することもできます。任意の値にマッチするこの値に意味があるのは、リストの最後の値として使った場合だけです。 topologyKeysが未指定または空の場合、トポロジーの制約は適用されません。 ホスト名、ゾーン名、リージョン名のラベルが付いたNodeを持つクラスターについて考えてみましょう。このとき、ServiceのtopologyKeysの値を設定することで、トラフィックの向きを以下のように制御できます。 トラフィックを同じノード上のエンドポイントのみに向け、同じノード上にエンドポイントが1つも存在しない場合には失敗するようにする: ["kubernetes.io/hostname"]。 同一ノード上のエンドポイントを優先し、失敗した場合には同一ゾーン上のエンドポイント、同一リージョンゾーンのエンドポイントへとフォールバックし、それ以外の場合には失敗する: ["kubernetes.io/hostname", "topology.kubernetes.io/zone", "topology.kubernetes.io/region"]。これは、たとえばデータのローカリティが非常に重要である場合などに役に立ちます。 同一ゾーンを優先しますが、ゾーン内に利用可能なノードが存在しない場合は、利用可能な任意のエンドポイントにフォールバックする: ["topology.kubernetes.io/zone", "*"]。 制約 ServiceトポロジーはexternalTrafficPolicy=Localと互換性がないため、Serviceは2つの機能を同時に利用できません。2つの機能を同じクラスター上の異なるServiceでそれぞれ利用することは可能ですが、同一のService上では利用できません。 有効なトポロジーキーは、現在はkubernetes.io/hostname、topology.kubernetes.io/zone、およびtopology.kubernetes.io/regionに限定されています。しかし、将来は一般化され、他のノードラベルも使用できるようになる予定です。 トポロジーキーは有効なラベルのキーでなければならず、最大で16個のキーまで指定できます。 すべての値をキャッチする"*"を使用する場合は、トポロジーキーの最後の値として指定しなければなりません。 例 以下では、Serviceトポロジーの機能を利用したよくある例を紹介します。 ノードローカルのエンドポイントだけを使用する ノードローカルのエンドポイントのみにルーティングするServiceの例です。もし同一ノード上にエンドポイントが存在しない場合、トラフィックは損失します。 apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 9376 topologyKeys: - "kubernetes.io/hostname" ノードローカルのエンドポイントを優先して使用する ノードローカルのエンドポイントを優先して使用しますが、ノードローカルのエンドポイントが存在しない場合にはクラスター全体のエンドポイントにフォールバックするServiceの例です。 apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 9376 topologyKeys: - "kubernetes.。。。

推荐

extundelete Download Statistics: All Files

Extundelete is a utility to undelete files from an ext3 or ext4 partition.

Sobre a cobrança do GitHub ActionsGitHub Docs

Se você quiser usar GitHub Actions além do armazenamento ou dos minutos incluídos em sua conta, você será cobrado pelo uso adicional.

Gerenciar lembretes agendados para a sua organizaçãoGitHub Docs

Você pode obter lembretes no Slack para todos os pull requests que as equipes em sua organização foram solicitadas para revisar.

心灵鸡汤

哲理小故事、佛塔上的老鼠

  一只四处漂泊的老鼠在佛塔顶上安了家。

  佛塔里的生活实在是幸福极了,它既可以在各层之间随意穿越,又可以享受到丰富的供品。它甚至还享有别人所无法想象的特权,那些不为人知的秘笈,它可以随意咀嚼;人们不敢正视的佛像,它可以自由休闲,兴起之时,甚至还可以在佛像头上留些排泄物。

  每当善男信女们烧香叩头的时候,这只老鼠总是看着那令人陶醉的烟气,慢慢升起,它猛抽着鼻子,心中暗笑:“可笑的人类,膝盖竟然这样柔软,说跪就跪下了!”

  有一天,一只饿极了的野猫闯了进来,它一把将老鼠抓住。

  “你不能吃我!你应该向我跪拜!我代表着佛!”这位高贵的俘虏抗议道。

  “人们向你跪拜,只是因为你所占的位置,不是因为你!”

  野猫讥讽道,然后,它像掰开一个汉堡包那样把老鼠掰成了两半。

  【人生感悟】人生中,很多人都有得意的时候,要客观地想一想,别人对你毕恭毕敬时,是因为你自身的人格、学识,恩德,还是因为你临时所处的位置。

列表展示

主站展示位

Linux 命令

{mtitle title="Linux常用命令(centos 7 为例)"/}1、查看网络地址配置ip address show 或者 ip a centos 7 以前版本命令是 ifcon...

CDN加速导致typecho后台无限登录的问题

{mtitle title="后台登录不上的解决方"/}因为昨天套了腾讯云送的cdn导致博客的后台无限登录的情况,所以我直接果奔源站IP,不过我去找了群里面的大佬们,说叫我把CDN缓存设置一下就...

续订Office365E5订阅

前言Microsoft 365 E5 Renew XMicrosoft 365 E5 Renew X是一款网页版的E5续订服务,其依赖网页浏览器呈现支持用户多端操作,完全将E5账户API调用托管...

京东呆瓜搭建青龙面板+xdd-plus机器人+nvjdc配置

{card-default label="效果演示" width=""} JDDG {/card-default}第零步 安装docker,docker-compose。(已有面板的跳过这步)#...

网站复制文章提醒代码

代码介绍1.一段可以让你网站被别人复制文章或者文字的时候会有 弹窗 提醒2.提醒文字可以 自定义 设置!3.废话不多话,直接分享代码表情代码演示下载特效JS文件:commentTyping.js...

误操作yum导致error: rpmdb解决方法

今天碰到一个问题就是yum 安装软件时会出现error:rpmdb错误,原因就是rpm数据库损坏。错误: error: rpmdb: BDB0113 Thread/process 1896...

哆啦A梦伴我同行2

哆啦A梦伴我同行2画质:高清该片取材自藤子·F·不二雄创作的漫画《哆啦A梦》中的短篇故事《怀念奶奶》,讲述了想念奶奶的大雄乘坐时光机返回过去与奶奶相见,因为奶奶想看到自己的新娘,便跑去找静香求婚...

腾讯云CDN第三方存储桶私有读写,纵享安全

引入在公网对对象存储进行读取,有公有读和私有读两个方式,但是由于CDN无法进行验证,导致如果非同一厂商支持内网验证的CDN环境下,必须使用公有读才可以正常从外网访问。最近腾讯云CDN的源站多了一...

一招解决检测你的电脑是否可升级win11

新系统发布后不少用户关心自己的PC配置能否顺利的升级Windows 11,对此微软官方同步放出了一款名为 “PC Health Check”的检测工具,可以检测你的 PC 能否满足升级 Wind...

LINUX运维学习之综合架构篇——Ansible 批量管理服务(中)

1、ansible模块说明:yum模块name --- 指定安装软件名称state --- 指定是否安装软件installed --- 安装软件presentlatestabsent ...

MySQL开启慢查询日志

前言数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。MySQL的慢查询日志是MySQL...

Nginx反向代理

nginx正向代理就是私网到公网nginx反向代理就是公网到私网获取请求网址proxy_set_header Host $proxy_host;代理服务器记录客户端IPproxy_set_hea...

博客寄语:

    我在等一个人,一个可以陪我很久很久的人

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。