kubernetes ネットワーキング入門

9ea422a61c1a69c888786830eee3dbe6?s=47 osonoi
September 22, 2020
140

kubernetes ネットワーキング入門

9ea422a61c1a69c888786830eee3dbe6?s=128

osonoi

September 22, 2020
Tweet

Transcript

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

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

  3. 出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqJ27 • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  4. 質問&ライブ投票参加 はこちら slido.com #dojo0923n 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます https://app.sli.do/event/grsjbn11 PC,マックの場合は

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

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

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

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

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

    キャンセルの⽅法
  10. 2-1 IBM Cloud Kubernetes Service(IKS) クラスターの作成 IKSクラスターを作成する カタログ à Service

    à コンテナー à Kubernetes Service
  11. 2-1 IBM Cloud Kubernetes Service クラスターの作成 続きはこちらを、IKSクラスターを作成する(ビデオ) https://www.youtube.com/watch?v=a5nafSCSLIQ 有料の標準クラスタが必要になります。 クラッシック・インフラストラクチャーを選んでください。

    ロケーションは単⼀ゾーン、ワーカーノードは1で⼤丈夫です。 ノードは 4 vCPU, 16GB RAM *ノードの種類によって課⾦量が変わってくるのでご注意ください。
  12. 2-2.課⾦について 2-2-1 クラスターへの課⾦ ワーカーノードの構成により異なります。詳細は次項 2-2-2 ネットワークへの課⾦ ポータブルIPアドレスが課⾦されます 1ヶ⽉分 https://cloud.ibm.com/docs/containers?topic=containers-subnets&locale=ja

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

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

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

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

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

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

  19. 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までは行えます。
  20. 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
  21. Lab01 Services and ClusterIP POD1 POD2 POD3 Kubernetes cluster 172.30.0.0/16

    kubectl create -f helloworld-deployment.yaml
  22. 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
  23. Lab01 Services and ClusterIP Service Type ClusterIP:クラスタ内部 IP でサービスを公開します。これはデフォルトの ServiceType

    です。 NodePort:各ノードのIP上のサービスをポート番号(NodePort)で公開します。NodePortサー ビスがルーティングするClusterIPサービスも自動的に作成されます。 LoadBalancer:クラウドプロバイダーのロードバランサーを使用してサービスを外部に公開し ます。外部のロードバランサーがルーティングするNodePortとClusterIPサービスも自動的に 作成されます。 ExternalName: CNAMEレコードを返すことで、サービスをexternalNameフィールド(例: foo.bar.example.com)にマップします。
  24. Lab02 NodePort POD1 POD2 POD3 Kubernetes cluster:150.238.93.101 Cluster IP: 172.21.161.255

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

    (クラスター内部からHelloworldアプリにアクセスできる) NLB 169.48.67.163
  26. Lab04 Ingress and Application Load Balancer(ALB)

  27. Lab05 Network Policy and Calico

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

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