Enviar pesquisa
Carregar
Kubernetes1.9でWindowsコンテナーをクラスタ化
•
0 gostou
•
11,801 visualizações
Takashi Kanai
Seguir
Kubernetes 1.9を使ってWindowsコンテナーをクラスタ化する手順を紹介。
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 48
Baixar agora
Baixar para ler offline
Recomendados
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
Takashi Kanai
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったこと
h-otter
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Takashi Kanai
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Kubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VM
Masanori Nara
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
Kubernetesと閉域網
Kubernetesと閉域網
Han Li
Recomendados
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
Takashi Kanai
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったこと
h-otter
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Kubernetes上のWindows Server コンテナーのマイクロサービス間分離
Takashi Kanai
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Kubernetes Operator for vSphere VM
Kubernetes Operator for vSphere VM
Masanori Nara
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
Kubernetesと閉域網
Kubernetesと閉域網
Han Li
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019 Winter version and Knative
Masahito Zembutsu
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
Kazuki Takai
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルド
Masanori Nara
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kamon Nobuchika
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Masaya Aoyama
Introduction to Magnum (JP)
Introduction to Magnum (JP)
Motohiro OTSUKA
NSX-Tから見たvSphere with Kubernetesのネットワーキング
NSX-Tから見たvSphere with Kubernetesのネットワーキング
Tomoyuki Tanigaki
vmware-meetup7
vmware-meetup7
mikiya michishita
OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)
Naoya Hashimoto
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
さくらインターネット株式会社
自動化ハンズオン
自動化ハンズオン
VirtualTech Japan Inc.
Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
VirtualTech Japan Inc.
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
Windowsコンテナ入門
Windowsコンテナ入門
Kyohei Mizumoto
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Masahiro Tabuki
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
VirtualTech Japan Inc.
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Takashi Kanai
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Mais conteúdo relacionado
Mais procurados
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019 Winter version and Knative
Masahito Zembutsu
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
Kazuki Takai
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルド
Masanori Nara
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kamon Nobuchika
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Masaya Aoyama
Introduction to Magnum (JP)
Introduction to Magnum (JP)
Motohiro OTSUKA
NSX-Tから見たvSphere with Kubernetesのネットワーキング
NSX-Tから見たvSphere with Kubernetesのネットワーキング
Tomoyuki Tanigaki
vmware-meetup7
vmware-meetup7
mikiya michishita
OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)
Naoya Hashimoto
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
さくらインターネット株式会社
自動化ハンズオン
自動化ハンズオン
VirtualTech Japan Inc.
Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
VirtualTech Japan Inc.
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
Windowsコンテナ入門
Windowsコンテナ入門
Kyohei Mizumoto
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Masahiro Tabuki
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
VirtualTech Japan Inc.
Mais procurados
(20)
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019 Winter version and Knative
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルド
Docker & Kubernetes基礎
Docker & Kubernetes基礎
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Introduction to Magnum (JP)
Introduction to Magnum (JP)
NSX-Tから見たvSphere with Kubernetesのネットワーキング
NSX-Tから見たvSphere with Kubernetesのネットワーキング
vmware-meetup7
vmware-meetup7
OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
自動化ハンズオン
自動化ハンズオン
Japan Container Day 2018
Japan Container Day 2018
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
Windowsコンテナ入門
Windowsコンテナ入門
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Kubernetes に開かれる新しい海 -Project Pacific とは?-
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
Semelhante a Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Takashi Kanai
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
Takashi Kanai
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Takashi Kanai
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
Akihiro Suda
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hitachi, Ltd. OSS Solution Center.
openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019
Takehiro Kudou
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
ksk_ha
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
Takashi Kanai
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
勇 黒沢
Semelhante a Kubernetes1.9でWindowsコンテナーをクラスタ化
(20)
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
openstack_neutron-ovs_osc2014tf_20141019
openstack_neutron-ovs_osc2014tf_20141019
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
Kubernetes1.9でWindowsコンテナーをクラスタ化
1.
Kubernetes 1.9で Windowsコンテナをクラスタ化 2018年2月24日 System Center
User Group Japan 金井 崇
2.
自己紹介 • 名前:金井 崇 •
所属:株式会社IDCフロンティア • 仕事:IaaSの基盤設計・構築・運用・提案を担当 • 興味:仮想化 コンテナ オールフラッシュ GPU FPGA Chef Docker PowerShell VSCode Hadoop • MVP:Cloud and Data Center Management (2017/03~) • SNSなど: • Facebook https://www.facebook.com/anikundesu • Blog http://www.takanyan.net/ • Twitter @anikundesu • LinkedIn https://jp.linkedin.com/in/takashikanai/ja • SlideShare https://www.slideshare.net/anikundesu/presentations 2Copyright © 2018 System Center User Group Japan. All Rights Reserved.
3.
注意事項 本セッションは、Windows Server Version
1709とKubernetes 1.9.2での検証結果をもとに記述を しています。バージョンによっては挙動が異なる場合がありますので、ご留意ください。 本セッション資料は、個人で準備した環境において、個人的に実施した検証・結果を基に記載して います。あくまで個人の意見・見解であり、所属する会社・組織及びマイクロソフト社とは関係が ございません。所属する会社・組織・マイクロソフト社の正式な回答・見解ではない事に留意して ください。 本資料を閲覧した事により問題が生じた場合、または問題が発生しかけた場合、または生じた一切 の不利益について、発表者は一切の責任を負う事はできませんのでご了承ください。 3Copyright © 2018 System Center User Group Japan. All Rights Reserved.
4.
本日のアジェンダ Kubernetes管理サーバー(Master Node)の構築2 Worker Node(Windowsコンテナ)の構築3 まとめ:今後の開発4 コンテナをクラスタ化する目的1 4Copyright
© 2018 System Center User Group Japan. All Rights Reserved.
5.
コンテナをクラスタ化する目的 Section 1 5Copyright ©
2018 System Center User Group Japan. All Rights Reserved.
6.
第3のプラットフォーム (※2016/12/17 “NAWA Tech”
& “SCUGJ” 年末勉強会 発表資料から再掲) • IDCが最初に提唱 メインフレーム、クライアント・サーバーに続く次のPlatform • 第3のPlatformが求められる4つのシーン Cloud、BigData、Mobile、Social • 実現にはMicroserviceが必要 ここでコンテナが使われる Copyright © 2018 System Center User Group Japan. All Rights Reserved. 6
7.
Microserviceアーキテクチャの特徴 7 出典:Microservices - a
definition of this new architectural term https://martinfowler.com/articles/microservices.html Copyright © 2018 System Center User Group Japan. All Rights Reserved. <従来のアーキテクチャの特徴> • 1つのプロセス(実行ファイル)内に必要な 機能すべてを実装(Monolithic) • スケールアウトは機能全体を複製して実現 <Microserviceアーキテクチャの特徴> • 必要な機能を1つずつ小さなサービスとし て分離(Microservice) • スケールアウトはMicroserviceを機能単位 に複製して実現 従来のアーキテクチャ (Monolithic) Microcervice アーキテクチャ
8.
Microserviceアーキテクチャの内部 機能ごとにServerとNWとLBができる 8Copyright © 2018
System Center User Group Japan. All Rights Reserved. LB App Server 機能A 機能B 機能C App Server 機能A 機能B 機能C App Server 機能A 機能B 機能C DB DB LB LB Aコンテナ DB DB LB Aコンテナ Aコンテナ Bコンテナ Bコンテナ Bコンテナ Cコンテナ Cコンテナ Cコンテナ コンテナ間NW・LB コンテナ間NW・LB スケール アウト スケール アウト スケール アウト スケール アウト
9.
コンテナのスケールアウトと コンテナ間ネットワーク、負荷分散は 誰が実現するのか? 9Copyright © 2018
System Center User Group Japan. All Rights Reserved.
10.
コンテナをクラスタ化する目的 • 小さな機能ごとのサービス(Microservice)をコンテナ で実装。 • Microservice間をネットワークでつなぎ、負荷分散する 環境を作る事を「クラスタ化」と呼ぶ。 •
コンテナクラスタ管理ソフトが各Microserviceのスケー ルアウト、コンテナ間ネットワーク、負荷分散などを管 理する。 10Copyright © 2018 System Center User Group Japan. All Rights Reserved.
11.
コンテナ管理ソフト:Kubernetes 11Copyright © 2018
System Center User Group Japan. All Rights Reserved. 出典:Kubernetes https://kubernetes.io/ • Googleが2014年から公開したコンテナ管理用の オープンソースソフトウェア • 今ではAzure AKS、Amazon EKS、Google GKEなど Kubernetesのマネージドサービスを各社提供 • コンテナのデファクトになったDockerでは Docker SwarmだけではなくKubernetesも同梱す るようになった コンテナ管理の標準になりつつある
12.
WindowsのKubernetes対応とは • KubernetesはLinuxベースのアプリ ケーションであり、Dockerも元々 Linuxのコンテナ(LXC)管理API • コンテナクラスタを作るために必要な SDNもLinux
Kernelの機能で実装 Windows Server version 1709は KuberenetesのSDN実装に対応 12Copyright © 2018 System Center User Group Japan. All Rights Reserved. 出典:Windows Networking at Parity with Linux for Kubernetes https://www.cncf.io/blog/2017/09/08/windows-networking-parity-linux-kubernetes/ Windows Server 1709でのKubernetes Network機能対応(か???)
13.
本日構築するデモ環境 13Copyright © 2018
System Center User Group Japan. All Rights Reserved. Kubernetes Master (Ubuntu 17.10) Worker Node1 (Windows 1709) Worker Node2 (Windows 1709) Worker Node3 (Windows 1709) 外部NW 192.168.1.0/24 vSwitch NAT コンテナNW 172.16.3.0/24 172.16.3.2 192.168.1.33 vSwitch NAT コンテナNW 172.16.2.0/24 172.16.2.2 192.168.1.32 vSwitch NAT コンテナNW 172.16.1.0/24 172.16.1.2 192.168.1.31 iptables NAT コンテナNW 172.16.0.0/24 172.16.0.1 192.168.1.20
14.
Kubernetes管理サーバー (Master Node)の構築 Section 2 14Copyright
© 2018 System Center User Group Japan. All Rights Reserved.
15.
このセクションで構築する部分 15Copyright © 2018
System Center User Group Japan. All Rights Reserved. Worker Node1 (Windows 1709) Worker Node2 (Windows 1709) Worker Node3 (Windows 1709) 外部NW 192.168.1.0/24 vSwitch NAT コンテナNW 172.16.3.0/24 172.16.3.2 192.168.1.33 vSwitch NAT コンテナNW 172.16.2.0/24 172.16.2.2 192.168.1.32 vSwitch NAT コンテナNW 172.16.1.0/24 172.16.1.2 192.168.1.31 Kubernetes Master (Ubuntu 17.10) iptables NAT コンテナNW 172.16.0.0/24 172.16.0.1 192.168.1.20
16.
コンテナ間ネットワークのトポロジー設計 16Copyright © 2018
System Center User Group Japan. All Rights Reserved. トポロジー 実装状況 特徴 上位L3ルーティング L3スイッチでStatic Routing 手動でStatic Routingを設定 Host-Gateway 各コンテナホストでStatic Routing 各ホストで他ホスト向け Static Routeを手動設定 Open vSwitch(OVS)& OVN with Overlay STTなどのOverlayプロトコ ルをOVS上で実装 Hyper-V vSwitchがあるのに OVSを入れるとか・・・ FlannelとCNIプラグインに よるOverlay VXLAN or IP-in-IPカプセル化 開発途中 Calicoによるルーティング BGPでL3ルーティング設定 開発途中 今回は必要機器が少ないHost-Gateway構成を選択 参照:Using Windows Server Containers in Kubernetes ( https://kubernetes.io/docs/getting-started-guides/windows/ )
17.
Kubernetes Masterの構築 Kubernetes Master構築のステップ 1.
Ubuntu上にKubernetesのインストール 2. CNI Pluginのインストール 3. Kubernetes初期設定 4. Kubernetesの起動 参考:Kubernetes Master From Scratch https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/creating-a-linux-master 17Copyright © 2018 System Center User Group Japan. All Rights Reserved.
18.
Ubuntu上にKubernetesのインストール① • Ubuntu Server
17.10のOSをインストール (Swapは使わない設定が理想) • 固定IPアドレスの設定 • OSに最新パッチ適用 • 必要なパッケージのインストール 18Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install curl git build-essential docker.io conntrack python2.7
19.
Ubuntu上にKubernetesのインストール② • Microsoftで用意したKuberneteで Windowsコンテナを管理するためのNW 設定Scriptの用意 19Copyright ©
2018 System Center User Group Japan. All Rights Reserved. $ mkdir -p ~/kube/bin $ git clone https://github.com/Microsoft/SDN /tmp/k8s $ cd /tmp/k8s/Kubernetes/linux $ chmod -R +x *.sh $ chmod +x manifest/generate.py $ mv * ~/kube/
20.
Ubuntu上にKubernetesのインストール③ • Kubernetes 1.9.2のバイナリのダウン ロードとインストール 20Copyright
© 2018 System Center User Group Japan. All Rights Reserved. $ wget -O kubernetes.tar.gz https://github.com/kubernetes/kubernetes/releases/download/v1.9.2/kubernetes.tar.gz $ tar -xzf kubernetes.tar.gz $ cd kubernetes/cluster $ ./get-kube-binaries.sh $ cd ../server $ tar -xzf kubernetes-server-linux-amd64.tar.gz $ cd kubernetes/server/bin $ cp hyperkube kubectl ~/kube/bin/
21.
Ubuntu上にKubernetesのインストール④ • Kubernetes実行ファイル用のパスの設定 • 設定反映のためここでOSを再起動 ※いったんログオフするだけでも可 21Copyright
© 2018 System Center User Group Japan. All Rights Reserved. $ vi ~/.profile (最終行に以下を追記) PATH="$HOME/kube/bin:$PATH"
22.
CNI Pluginのインストール • CNI
Pluginをダウンロードして展開 22Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ DOWNLOAD_DIR="${HOME}/kube/cni-plugins" $ CNI_BIN="/opt/cni/bin/" $ mkdir ${DOWNLOAD_DIR} $ cd $DOWNLOAD_DIR $ curl -L $(curl -s https://api.github.com/repos/containernetworking/plugins/releases/latest | grep browser_download_url | grep 'amd64.*tgz' | head -n 1 | cut -d '"' -f 4) -o cni-plugins- amd64.tgz $ tar -xzf cni-plugins-amd64.tgz $ sudo mkdir -p ${CNI_BIN} $ sudo cp -r !(*.tgz) ${CNI_BIN}
23.
Kubernetes初期設定① 設定をする際の各種パラメータ 23Copyright © 2018
System Center User Group Japan. All Rights Reserved. パラメータ名 値 意味 MASTER_IP 192.168.1.20 Kubernetes Master(Ubuntu)のIPアドレス CLUSTER_CIDR 172.16.0.0/16 コンテナクラスタ用Networkで使うCIDR ここから各Node用に/24ずつアサインされる API Version 1.9.2 インストールするKubernetesのバージョン
24.
Kubernetes初期設定② • Node間通信の認証に用いる証明書の生成 • 各種設定ファイル(manifest)を生成 24Copyright
© 2018 System Center User Group Japan. All Rights Reserved. $ cd ~/kube/manifest $ python2.7 ./generate.py $MASTER_IP --cluster-cidr 172.16.0.0/16 --api-version=1.9.2 $ MASTER_IP=192.168.1.20 $ cd ~/kube/certs $ chmod u+x generate-certs.sh $ ./generate-certs.sh $MASTER_IP
25.
Kubernetes初期設定③ • Kubectlコマンド用設定ファイル生成 • 設定ファイルを必要な場所へコピー 25Copyright
© 2018 System Center User Group Japan. All Rights Reserved. $ mkdir ~/kube/kubelet $ sudo cp ~/.kube/config ~/kube/kubelet/ $ cd ~/kube $ ./configure-kubectl.sh $MASTER_IP
26.
Kubernetesの起動① Kubernetes Client(kubelet)とkubeproxy をフォアグラウンドで実行 ※大量の出力があるので必ず別Terminalを立ち上げる • Kubeletの開始 •
Kubeproxyの開始 26Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ cd ~/kube $ sudo ./start-kubeproxy.sh 172.16 $ cd ~/kube $ sudo ./start-kubelet.sh
27.
Kubernetesの起動② • 各種コマンドで起動を確認 27Copyright ©
2018 System Center User Group Japan. All Rights Reserved. $ sudo docker ps 23個ぐらいのKubernetes関連コンテナが起動している $ kubectl cluster-info Kubernetes master is running at https://192.168.1.20 (以下略) $ ifconfig cbr0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 172.16.0.1 netmask 255.255.255.0 broadcast 0.0.0.0 ※“cbr0”というインターフェースが生成されCluster CIDRのIPがアサインされている
28.
Worker Node (Windowsコンテナ)の構築 Section 3 28Copyright
© 2018 System Center User Group Japan. All Rights Reserved.
29.
このセクションで構築する部分 29Copyright © 2018
System Center User Group Japan. All Rights Reserved. Worker Node2 (Windows 1709) Worker Node3 (Windows 1709) 外部NW 192.168.1.0/24 vSwitch NAT コンテナNW 172.16.3.0/24 172.16.3.2 192.168.1.33 vSwitch NAT コンテナNW 172.16.2.0/24 172.16.2.2 192.168.1.32 Kubernetes Master (Ubuntu 17.10) iptables NAT コンテナNW 172.16.0.0/24 172.16.0.1 192.168.1.20 Worker Node1 (Windows 1709) vSwitch NAT コンテナNW 172.16.1.0/24 172.16.1.2 192.168.1.31
30.
WindowsコンテナNodeの構築 WindowsコンテナNode構築のStep 1. Windows ServerのNIC設定 2.
DockerのインストールとOS再起動 3. Kubernetesのインストールと設定 4. Kubernetesクラスタへの参加 参考:Kubernetes on Windows https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/getting- started-kubernetes-windows 30Copyright © 2018 System Center User Group Japan. All Rights Reserved.
31.
Windows ServerのNIC設定 • Node間通信に使うNICの名称を変更 ※
Kubernetes設定に使うScriptはNIC名が「Ethernet」である前提のため 31Copyright © 2018 System Center User Group Japan. All Rights Reserved. C:¥> powershell PS C:¥> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- イーサネット Microsoft Hyper-V Network Adapter 2 Up 00-15-5D-01-0B-0E 1 Gbps PS C:¥> Rename-NetAdapter -Name “イーサネット” -NewName “Ethernet” PS C:¥> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Ethernet Microsoft Hyper-V Network Adapter 2 Up 00-15-5D-01-0B-0E 1 Gbps
32.
DockerのインストールとOS再起動 • PowerShellでDockerのインストール • Dockerのサービス起動がうまくいかない ので、OSを「2回」再起動させる 32Copyright
© 2018 System Center User Group Japan. All Rights Reserved. PS C:¥> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force PS C:¥> Install-Package -Name Docker -ProviderName DockerMsftProvider (Yes/Noを聞かれたら「Y」と明示的に入力する) PS C:¥> Restart-Computer -Force 【2回OS再起動する】
33.
Kubernetesのインストールと設定① • 「C:¥k¥」フォルダ以下にKubernetes設 定用Scriptをダウンロード ※ 設定Scriptは保存フォルダがC:¥k¥である前提のため、他の名称は使わない 33Copyright
© 2018 System Center User Group Japan. All Rights Reserved. PS C:¥> wget https://github.com/Microsoft/SDN/archive/master.zip -o master.zip PS C:¥> Expand-Archive master.zip -DestinationPath master PS C:¥> mkdir C:¥k¥ PS C:¥> mv master¥SDN-master¥Kubernetes¥windows¥* C:¥k¥ PS C:¥> rm -recurse -force master,master.zip PS C:¥> Unblock-File C:¥k¥* ←ダウンロードしたScriptの実行を許可する
34.
Kubernetesのインストールと設定② • Kubernetes実行用コンテナImageの取得 • Kubernetes用Paused
Image作成 34Copyright © 2018 System Center User Group Japan. All Rights Reserved. PS C:¥> docker pull microsoft/windowsservercore:1709 PS C:¥> docker tag microsoft/windowsservercore:1709 microsoft/windowsservercore:latest PS C:¥> cd C:¥k¥ PS C:¥k¥> docker build -t kubeletwin/pause . ←最後のピリオドを忘れない
35.
Kubernetesのインストールと設定③ • KubernetesのWindowsバイナリのダウン ロードと展開 URL: https://storage.googleapis.com/kubernetes- release/release/v1.9.2/kubernetes-node-windows-amd64.tar.gz ※tar.gz形式なので、Linuxで展開するかツールを別途取得。 •
共有フォルダに展開後、Nodeに保存 35Copyright © 2018 System Center User Group Japan. All Rights Reserved. PS C:¥> mkdir C:¥k¥ PS C:¥> cd C:¥k¥ PS C:¥k¥> cp ¥¥(共有ファイルサーバーのIP)¥(フォルダのパス)¥kube*.exe .¥
36.
Kubernetesのインストールと設定④ • Kubernetes Masterにある ~/.kube/configファイルを保存 36Copyright
© 2018 System Center User Group Japan. All Rights Reserved. PS C:¥> cd C:¥k¥ PS C:¥k¥> notepad • メモ帳で上記の出力結果をすべて貼り付ける • 保存する際、拡張子を「すべてのファイル」にしたうえで「config」というファ イル名で保存する $ cat ~/.kube/config (出力結果をすべてコピー)
37.
Kubernetesのインストールと設定⑤ • Kubernetes実行に必要な環境変数の設定 • 恒久的なシステム設定にする際は以下を 実行 37Copyright
© 2018 System Center User Group Japan. All Rights Reserved. PS C:¥k¥> $env:Path += ";C:¥k" PS C:¥k¥> $env:KUBECONFIG="C:¥k¥config" PS C:¥k¥> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:¥k", [EnvironmentVariableTarget]::Machine) PS C:¥k¥> [Environment]::SetEnvironmentVariable("KUBECONFIG", "C:¥k¥config", [EnvironmentVariableTarget]::Machine)
38.
Kubernetesクラスタへの参加① • 別Windowでのkubeletの開始 38Copyright ©
2018 System Center User Group Japan. All Rights Reserved. PS C:¥k¥> Start-Process powershell (別ウィンドウで以下を実行) PS C:¥k¥> $env:Path += ";C:¥k" PS C:¥k¥> $env:KUBECONFIG="C:¥k¥config" PS C:¥k¥> ./start-kubelet.ps1 -ClusterCidr 172.16.0.0/16
39.
Kubernetesクラスタへの参加② • 別Windowでのkube-proxyの開始 39Copyright ©
2018 System Center User Group Japan. All Rights Reserved. PS C:¥k¥> Start-Process powershell (別ウィンドウで以下を実行) PS C:¥k¥> $env:Path += ";C:¥k" PS C:¥k¥> $env:KUBECONFIG="C:¥k¥config" PS C:¥k¥> ./start-kubeproxy.ps1
40.
Windowsコンテナのクラスタ化① 40Copyright © 2018
System Center User Group Japan. All Rights Reserved. Worker Node2 (Windows 1709) Worker Node3 (Windows 1709) 外部NW 192.168.1.0/24 コンテナNW 172.16.3.0/24 172.16.3.2 192.168.1.33 コンテナNW 172.16.2.0/24 172.16.2.2 192.168.1.32 Kubernetes Master (Ubuntu 17.10) コンテナNW 172.16.0.0/24 172.16.0.1 192.168.1.20 Worker Node1 (Windows 1709) コンテナNW 172.16.1.0/24 172.16.1.2 192.168.1.31 vSwitch NAT vSwitch NAT iptables NAT vSwitch NAT 各Node内のコンテナNWへのStatic Route設定を追加
41.
Windowsコンテナのクラスタ化② • 3台のWindows Nodeで構築を実行 •
Node状態が正常であることを確認 41Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ kubectl get nodes NAME STATUS ROLES AGE VERSION kube-master Ready <none> 15d v1.9.2 winworker01 Ready <none> 15d v1.9.2 winworker02 Ready <none> 14d v1.9.2 winworker03 Ready <none> 14d v1.9.2
42.
Windowsコンテナのクラスタ化③ • Windows NodeでStatic
Routeの設定 ※この設定は永続的。Nodeが増えたら再度実行が必要。 42Copyright © 2018 System Center User Group Japan. All Rights Reserved. PS C:¥k¥> .¥AddRoutes.ps1 -MasterIp 192.168.1.20 -Gateway 192.168.1.1 (各NodeのコンテナNW情報をKubernetes Masterから取得し、必要なStatic Routeを自 動設定)
43.
Windowsコンテナのクラスタ化④ • Kubernetes Master
NodeでStatic Route の設定 ※この設定は非永続的。OS再起動後は都度実行が必要。 43Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ CLUSTER_PREFIX="172.16" $ sudo route add -net $CLUSTER_PREFIX.0.0 netmask 255.255.0.0 dev eth0 $ sudo route add -net $CLUSTER_PREFIX.1.0 netmask 255.255.255.0 gw $CLUSTER_PREFIX.1.2 dev eth0 $ sudo route add -net $CLUSTER_PREFIX.2.0 netmask 255.255.255.0 gw $CLUSTER_PREFIX.2.2 dev eth0 $ sudo route add -net $CLUSTER_PREFIX.3.0 netmask 255.255.255.0 gw $CLUSTER_PREFIX.3.2 dev eth0
44.
DEMO:KubernetesでWindowsコンテナ管理 1. Workerのステータスを確認 2. サンプルWebプログラムを実行 3.
いろんな方法でWebアクセス 44Copyright © 2018 System Center User Group Japan. All Rights Reserved.
45.
• Windows用サンプルServiceのデプロイ 45Copyright ©
2018 System Center User Group Japan. All Rights Reserved. $ kubectl apply -f https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/WebServer.yaml - O win-webserver.yaml $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE win-webserver-bc9d6d478-5rwqv 1/1 Running 0 3m 172.16.2.187 winworker02 win-webserver-bc9d6d478-j7k9x 1/1 Running 0 3m 172.16.3.218 winworker03 $ kubectl get service win-webserver NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE win-webserver LoadBalancer 11.0.7.87 <pending> 80:31932/TCP 1m
46.
まとめ:今後の開発 Section 4 46Copyright ©
2018 System Center User Group Japan. All Rights Reserved.
47.
まとめ • コンテナはクラスタ化することでMicroserviceアーキテクチャを構 築できるようになる。 • Kubernetes
v1.9とWindows Server version 1709の組み合わせ でWindowsベースのMicroserviceアーキテクチャが実現可能に。 • Windowsコンテナのクラスタ化のためのコンテナ間NWの実装はい くつかあるが、手動設定が必須だったり、開発途中のものが多い。 →設定が煩雑で面倒 47Copyright © 2018 System Center User Group Japan. All Rights Reserved.
48.
今後の開発について • コンテナ間、Node間のRoutingを自動設 定するOSSが今後Windowsにも対応 48Copyright ©
2018 System Center User Group Japan. All Rights Reserved. Windows (今後) Linux 各NodeにRoutingや Overlay NWを設定 各コンテナ間に必要 な通信情報を伝達 コンテナ間通信要件 からNode用設定生成 or
Baixar agora