Slide 1

Slide 1 text

IBM Developer Dojo kubernetes ネットワーキング⼊⾨ Yasushi Osonoi

Slide 2

Slide 2 text

⼩薗井 康志(Yasushi Osonoi) Developer Advocate IBM @osonoi フォロー、友達リクエストはお気軽に︕

Slide 3

Slide 3 text

出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqJ27 • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】

Slide 4

Slide 4 text

質問&ライブ投票参加 はこちら slido.com #dojo0923n 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます https://app.sli.do/event/grsjbn11 PC,マックの場合は

Slide 5

Slide 5 text

質問する場合はこちらから

Slide 6

Slide 6 text

学習の⽬的とゴール ⽬的 KubernetesのNetwork基礎について理解する ゴール KubernetesにアプリをディプロイしてサービスやNodePortなどを作成し て外部からアクセスできるようにする。 このコースを学ぶ⽅の想定スキル Kubernetesを使ってアプリのディプロイをしたことがある⽅ 想定:⼿を動かして学ぶKubernetesのアプリケーション開発 *今回のワークショップでは有料のクラスターが必要になってきます。

Slide 7

Slide 7 text

説明順序 1. IBM Cloud Kubernetes Service 2. 今回のハンズオン環境について 3. ハンズオンワークショップ

Slide 8

Slide 8 text

1. IBM Cloud Kubernetes Service https://www.ibm.com/jp-ja/cloud/container-service

Slide 9

Slide 9 text

2.今回のハンズオン環境について 2-1 IBM Cloud Kubernetes Service クラスターの作成 2-2 課⾦について 2-3 キャンセルの⽅法

Slide 10

Slide 10 text

2-1 IBM Cloud Kubernetes Service(IKS) クラスターの作成 IKSクラスターを作成する カタログ à Service à コンテナー à Kubernetes Service

Slide 11

Slide 11 text

2-1 IBM Cloud Kubernetes Service クラスターの作成 続きはこちらを、IKSクラスターを作成する(ビデオ) https://www.youtube.com/watch?v=a5nafSCSLIQ 有料の標準クラスタが必要になります。 クラッシック・インフラストラクチャーを選んでください。 ロケーションは単⼀ゾーン、ワーカーノードは1で⼤丈夫です。 ノードは 4 vCPU, 16GB RAM *ノードの種類によって課⾦量が変わってくるのでご注意ください。

Slide 12

Slide 12 text

2-2.課⾦について 2-2-1 クラスターへの課⾦ ワーカーノードの構成により異なります。詳細は次項 2-2-2 ネットワークへの課⾦ ポータブルIPアドレスが課⾦されます 1ヶ⽉分 https://cloud.ibm.com/docs/containers?topic=containers-subnets&locale=ja

Slide 13

Slide 13 text

2-2-1 課⾦について(クラスター) 1. ロケーションの数(1︓単⼀ゾーン)か3︓複数ゾーン) 2. ワーカーノードのフレーバー 3. ワーカーノード(プール)の数

Slide 14

Slide 14 text

2-2-1 課⾦について(クラスター) 1. 例 4 vCPU 16GB RAM (¥33/時)で複数ゾーンにしてワーカーノードを 3にすると ¥33 x 3 x 3 = ¥296/時間となります。

Slide 15

Slide 15 text

2-2-1 課⾦について(クラスター) 1. 例 4 vCPU 16GB RAM (¥33/時)で複数ゾーンにしてワーカーノードを 3にすると ¥33 x 3 x 3 = ¥296/時間となります。

Slide 16

Slide 16 text

2-3 キャンセル(削除)の⽅法 クラスター ダッシュボードからClusterをクリック 削除したいクラスターの右端をクリック、削除を選択 このクラスターで使用された永続ストレージの削除に チェックを入れて下にクラスターの名前を入れると右下の 削除のバックが赤くなるのでそこをクリック

Slide 17

Slide 17 text

2-3 キャンセル(削除)の⽅法 ネットワーク ダッシュボードからClusterをクリック 削除したいクラスターの右端をクリック、削除を選択 このクラスターで使用された永続ストレージの削除に チェックを入れて下にクラスターの名前を入れると右下の 削除のバックが赤くなるのでそこをクリック

Slide 18

Slide 18 text

3. ハンズオンワークショップ 今回はこちらのGitHubを使って進めていきます。 https://github.com/osonoi/kubernetes-networking

Slide 19

Slide 19 text

3. ハンズオンワークショップ Lab00 setup Lab01 Services and ClusterIP Lab02 NodePort Lab03 Loadbalancer(NLB) Lab04 Ingress and Application Load Balancer(ALB) Lab05 Network Policy and Calico *無料のクラスターでもLab 02までは行えます。

Slide 20

Slide 20 text

4 vCPU 16GB RAM Lab00 setup Kubernetes cluster 4 vCPU 16GB RAM クラスター構成例 複数ゾーン、各ゾーンに3輪カーノードの場合 東京02 東京04 東京05 4 vCPU 16GB RAM 4 vCPU 16GB RAM 4 vCPU 16GB RAM 4 vCPU 16GB RAM 4 vCPU 16GB RAM 4 vCPU 16GB RAM 4 vCPU 16GB RAM

Slide 21

Slide 21 text

Lab01 Services and ClusterIP POD1 POD2 POD3 Kubernetes cluster 172.30.0.0/16 kubectl create -f helloworld-deployment.yaml

Slide 22

Slide 22 text

Lab01 Services and ClusterIP POD1 POD2 POD3 Kubernetes cluster 172.30.153.79 172.30.50.134 172.30.50.135 Endpoints Cluster IP: 172.21.161.255 (クラスター内部からHelloworldアプリにアクセスできる) kubectl create -f helloworld-service.yaml

Slide 23

Slide 23 text

Lab01 Services and ClusterIP Service Type ClusterIP:クラスタ内部 IP でサービスを公開します。これはデフォルトの ServiceType です。 NodePort:各ノードのIP上のサービスをポート番号(NodePort)で公開します。NodePortサー ビスがルーティングするClusterIPサービスも自動的に作成されます。 LoadBalancer:クラウドプロバイダーのロードバランサーを使用してサービスを外部に公開し ます。外部のロードバランサーがルーティングするNodePortとClusterIPサービスも自動的に 作成されます。 ExternalName: CNAMEレコードを返すことで、サービスをexternalNameフィールド(例: foo.bar.example.com)にマップします。

Slide 24

Slide 24 text

Lab02 NodePort POD1 POD2 POD3 Kubernetes cluster:150.238.93.101 Cluster IP: 172.21.161.255 (クラスター内部からHelloworldアプリにアクセスできる) Port番号: 31777

Slide 25

Slide 25 text

Lab03 Loadbalancer(NLB) POD1 POD2 POD3 Kubernetes cluster:150.238.93.101 Cluster IP: 172.21.161.255 (クラスター内部からHelloworldアプリにアクセスできる) NLB 169.48.67.163

Slide 26

Slide 26 text

Lab04 Ingress and Application Load Balancer(ALB)

Slide 27

Slide 27 text

Lab05 Network Policy and Calico

Slide 28

Slide 28 text

Lab05 Network Policy and Calico Kubernetes ネットワークポリシー ポッドが他のポッドおよび外部エンドポイントと通信する方法を指定します。 着信ネットワーク・ト ラフィックと発信ネットワーク・トラフィックの両方を、プロトコル、ポート、およびソースまたは宛 先 IP アドレスに基づいて許可またはブロックできます。 Calico ネットワークポリシー Kubernetes ポッドのソースまたは宛先 IP アドレスや CIDR に関係なく、特定のネットワーク・イン ターフェース上のネットワーク・トラフィックを許可またはブロックします。 複数の名前空間にまたがるポッドのネットワーク・トラフィックを許可またはブロックします。 https://cloud.ibm.com/docs/containers?topic=containers-network_policies&locale=ja POD1 POD2 POD2 POD1 名前空間: Dev 名前空間: Test ブロック X

Slide 29

Slide 29 text

プロジェクトCalicoは、コンテナ、Kubernetes、OpenShiftだけでなく、 Istioなどのためのオープンソースのネットワーキングとネットワークセキュリ ティプロジェクトです。いくつかの利点は、異なるレイヤー、例えばホストネット ワークレイヤーやサービスメッシュレイヤーでポリシーを適用できること、Linux カーネルの最適化されたフォワーディングとアクセス制御機能を使用していること、 CalicoはKubernetesと非Kubernetesの間で相互運用可能であること、パブ リッククラウド、VMやベアメタルサーバー上のオンプレミス、Kubernetes API と拡張ネットワークポリシー機能をサポートしております。 https://cloud.ibm.com/docs/containers?topic=containers-network_policies&locale=ja

Slide 30

Slide 30 text

質問&ライブ投票参加 はこちら slido.com #dojo0923n 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます https://app.sli.do/event/grsjbn11 PC,マックの場合は