Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20220831_k8sのNW構成#2
Search
Yuya Iguchi
January 10, 2023
80
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20220831_k8sのNW構成#2
Yuya Iguchi
January 10, 2023
More Decks by Yuya Iguchi
See All by Yuya Iguchi
20221221_k8sのコンポーネント解説
yuyaiguchi
0
54
20221108_QRadarNTA
yuyaiguchi
0
230
20220525_k8sのNW構成
yuyaiguchi
0
670
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
A Soul's Torment
seathinner
6
2.9k
Balancing Empowerment & Direction
lara
6
1.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Paper Plane (Part 1)
katiecoart
PRO
0
9k
WENDY [Excerpt]
tessaabrams
11
38k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Transcript
k8sのNW構成#2 (ネットワークに興味を持とう!)
Oracle https://www.linkedin.com/in/yuyaiguchi
None
【NWは面白い&必要不可欠】 PC、スマートフォン、タブレットなど今日のIT機器は、 ほぼ必ずNWに接続されています。 普段はNWに接続されていることを意識しないほど 「NWに繋がっていることが当たり前」になっています。 【前回(2022/5)セッションについて】 前回もk8sのNW構成についてお話しさせていただきました。 よろしければ以下もご参照ください。 (今回のお話の前提という訳ではございません。) 【増枠】k8sのNW構成
https://ibm-developer.connpass.com/event/247729/
前回(2022/5)にお話しできなかった用語のうち、 以下について解説させていただきます。 ①ClusterIP k8s外部やPodからPod(コンテナ)へアクセスする際、 直接Pod(コンテナ)へアクセスすることはない。 サービス(エンドポイント)を経由してアクセスする仕組みとなっている。 サービスにいくつか種類があり、その一つがClusterIPである。 ClusterIPは、k8sクラスタ内からのみアクセス可能である。
②Ingress L7としてのLBの役割を担う。 (アプリケーション層による負荷分散) LoadBalancer(サービス)はL4での負荷分散を行う。 (トランスポート層による負荷分散) ③Network Policy Pod間通信や、Podとk8s外部の通信を制御するリソース。 Pod、名前空間、IPアドレスとポートの組み合わせで 通信のallow/denyを方向と共に設定する。(FWのルールのような物)
【Kubernetes Networking】 https://ibm.github.io/kubernetes-networking/ IBMが公開している、Kubernetesのネットワーキングを まとめたサイトになります。 今回の勉強会でお話しできなかった項目についても記載がありますので、 良ければ参考としていただければと存じます。
公式URL https://istio.io/ サービスメッシュのプラットフォームであり、 マイクロサービスを管理する(相互に通信させる)ためのソフトウェア。 【特徴】 ・IBM、Googleなどが開発し2017年頃にオープンソース化 ・プラットフォームに依存しない(k8s以外もサポート)
・マイクロサービス ソフトウェア開発の考え方が2パターン考えられる。 1.モノリシック(相対的に旧) 複数機能を単一モジュール 2.マイクロサービス(相対的に新) 単一機能を複数モジュール ・サービスメッシュ マイクロサービスを導入するとNWが複雑となる課題(※)がある。 (※)ルーティング、負荷分散、トラフィック暗号化など サービス間の通信を専用ソフトで一元管理することで、
これらの課題の解決を図る仕組みがサービスメッシュである。 Machine モノリシック Machine マイクロサービス Machine Machine Machine 機能A 機能B 機能C 機能D 機能A 機能B 機能C 機能D
【Istioのコンポーネント】 data plane:Envoyプロキシサーバによるマイクロサービス間の通信の管理 control plane:ルーティングするプロキシ設定の管理
【Istioの機能(メリット)】 ①Traffic management ルールを設定することでルーティング、負荷分散などが可能。 ②Observability 各サービス間の通信のメトリクスを取得。(ボトルネックの特定) ③Security capabilities 各サービス間の通信を暗号化、アクセスの認証・認可を実現。 -
mTLS(サービスメッシュの機能)を使うことで盗聴、MITMを抑止。 - 脆弱性の悪用によりPodが乗っ取られた場合の影響を局所化。
【Istioの構築フロー】 (情報元) https://istio.io/latest/docs/setup/getting-started/ https://istio.io/latest/docs/examples/bookinfo/#apply-default-destination-rules ※“Apply default destination rules”のみ実施。 (手順フロー) 前提:サポートされるk8sバージョンのk8sクラスタが構築済であること
①Istioのdownload,install ②サンプルアプリケーションのdeploy ③Istio Ingress Gateway作成 ④ダッシュボード表示 ⑤デフォルトの宛先ルールの適用
【デモ】 Bookinfo Application(サンプルのデモ環境)を容易に構築できる。
【デモ】 パターン1: 特定サービスにのみルーティングする パターン2: 特定ユーザのリクエストのみ、特定サービスへルーティングする パターン3: ルーティングに重み付けを設定する
【Pod確認】 [root@k8s-node1 istio-1.14.3]# kubectl get pods -o wide NAME READY
STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES details-v1-b48c969c5-bsxxb 2/2 Running 0 9m3s 10.100.107.238 k8s-node3 <none> <none> httpd-7dd4bc446-x8t4x 2/2 Running 0 52m 10.100.169.168 k8s-node2 <none> <none> nginx-666c8449fc-swckl 2/2 Running 0 9m3s 10.100.107.236 k8s-node3 <none> <none> productpage-v1-74fdfbd7c7-6r6tf 2/2 Running 0 9m13s 10.100.107.235 k8s-node3 <none> <none> ratings-v1-b74b895c5-k5lk8 2/2 Running 0 8m50s 10.100.169.172 k8s-node2 <none> <none> reviews-v1-68b4dcbdb9-hdjds 2/2 Running 0 9m2s 10.100.107.239 k8s-node3 <none> <none> reviews-v2-565bcd7987-mvh2x 2/2 Running 0 9m13s 10.100.169.171 k8s-node2 <none> <none> reviews-v3-d88774f9c-hbhqx 2/2 Running 0 9m2s 10.100.107.237 k8s-node3 <none> <none> [root@k8s-node1 istio-1.14.3]#
【ブラウザ確認】
Q&A
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報 提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むも のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗 示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害 が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したもので もなく、またそのような結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示 するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっ
ていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講 演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示すること を意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用し た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ ミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示された ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、IBM Cloud、IBM Cloud Paksは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他 の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。