Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Rancher2.3とwindows Containerで作るkubernetesクラスタ

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 39 Anzeige

Rancher2.3とwindows Containerで作るkubernetesクラスタ

Herunterladen, um offline zu lesen

Rancher 2.3からWindows ContainerによるKubernetesクラスターの作成にも対応しました。このスライドでは、Rancherを使ってWindows Containerクラスターを自動構築する手順を紹介します。

Rancher 2.3からWindows ContainerによるKubernetesクラスターの作成にも対応しました。このスライドでは、Rancherを使ってWindows Containerクラスターを自動構築する手順を紹介します。

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Rancher2.3とwindows Containerで作るkubernetesクラスタ (20)

Anzeige

Aktuellste (20)

Anzeige

Rancher2.3とwindows Containerで作るkubernetesクラスタ

  1. 1. Rancher 2.3と Windows Containerで作る Kubernetesクラスタ 2019年12月7日 System Center User Group Japan 金井 崇
  2. 2. 自己紹介 • 名前:金井 崇 • 所属:某国内ISP • 仕事:IaaSのインフラ設計・構築・運用・提案を担当 • 興味:最近はKubernetes、コンテナなどコンピューティングの 最適な利用方法に興味があります。 • 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 © 2019 System Center User Group Japan. All Rights Reserved.
  3. 3. 注意事項 本セッションは、Windows Server 2019 (updated aug 2019)英語版とKubernetes 1.15.5での検証 結果をもとに記述をしています。バージョンによっては挙動が異なる場合がありますので、ご留意 ください。 本セッション資料は、個人で準備した環境において、個人的に実施した検証・結果を基に記載して います。あくまで個人の意見・見解であり、所属する会社・組織及びマイクロソフト社とは関係が ございません。所属する会社・組織・マイクロソフト社の正式な回答・見解ではない事に留意して ください。 本資料を閲覧した事により問題が生じた場合、または問題が発生しかけた場合、または生じた一切 の不利益について、発表者は一切の責任を負う事はできませんのでご了承ください。 3Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  4. 4. 本日のアジェンダ Kubernetes管理OSS「Rancher」の紹介2 Rancher 2.3を使ったWindows Containerクラスタ構築3 まとめ4 【復習】手動によるWindows Containerクラスタ構築1 4Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  5. 5. 【復習】手動によるWindows Container クラスタ構築 Section 1 5Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  6. 6. Kubernetes Worker Node (Windows) Windowsコンテナ Kubernetes Master (Linux) コンテナ 【復習】Kubernetes管理プロセス 6Copyright © 2019 System Center User Group Japan. All Rights Reserved. etcd kube-apiserver kube-controller- manager kube-scheduler kube-proxy kubeletflannel flanneld.exe coredns iptables HNS CNI CNI Kube-proxy
  7. 7. 構築の全体的なステップ 1. Kubeadmコマンドを使ったKubernetes Master Node(Linux)のインストール(省略) 2. Master NodeでのFlannelのインストール 3. Windows Worker Nodeの構築 4. Windows WorkerでKubernetesをサービス化 7Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  8. 8. 1‐1. Flannelのインストール準備① • iptablesでのBridge許可(デフォルトのはず) • Flannelインストール用YAMLダウンロード 8Copyright © 2018 System Center User Group Japan. All Rights Reserved. $ sudo sysctl net.bridge.bridge-nf-call-iptables=1 $ wget https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube- flannel.yml
  9. 9. 1‐2. Flannelのインストール準備② • Kube-flannel.ymlの変更 9Copyright © 2019 System Center User Group Japan. All Rights Reserved. $ vi kube-flannel.yml net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan", "VNI" : 4096, "Port": 4789 } } (中略) nodeSelector: beta.kubernetes.io/arch: amd64 beta.kubernetes.io/os: linux 追記 Cluster-CIDRと同じであることを確認 VNIとPortを明示的に指定 する必要あり。
  10. 10. 1‐3. Flannelのインストール • Kube-flannel.ymlのapply • (数分後)Flannel用Podが起動したことを確認 10Copyright © 2019 System Center User Group Japan. All Rights Reserved. $ kubectl apply -f kube-flannel.yml $ kubectl get pods -o wide --all-namespaces | egrep "NAMESPACE|kube-flannel-ds" NAMESPACE NAME READY STATUS RESTARTS AGE kube-system kube-flannel-ds-zxtpm 1/1 Running 4 33d
  11. 11. 2-1. Windows Worker設定情報取得 • Master NodeでService CIDR情報取得 • Master Nodeでkube-dnsのService IP取得 11Copyright © 2019 System Center User Group Japan. All Rights Reserved. $ kubectl cluster-info dump | grep -i service-cluster-ip-range "--service-cluster-ip-range=10.96.0.0/12" $ kubectl describe svc/kube-dns -n kube-system Name: kube-dns (中略) IP: 10.96.0.10 (以下略)
  12. 12. 2-2. DockerのインストールとOS再起動 • PowerShellでDockerのインストール • Dockerのサービス起動がうまくいかない ので、OSを「2回」再起動させる 12Copyright © 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再起動する】
  13. 13. 2-3. Windowsコンテナイメージの準備 • WindowsコンテナImageの取得 • Dockerイメージへのタグ付け 13Copyright © 2019 System Center User Group Japan. All Rights Reserved. PS C:¥> docker pull mcr.microsoft.com/windows/servercore:ltsc2019 PS C:¥> docker pull mcr.microsoft.com/windows/nanoserver:1903 PS C:¥> docker tag mcr.microsoft.com/windows/servercore:ltsc2019 mcr.microsoft.com/windows/servercore:latest PS C:¥> docker tag mcr.microsoft.com/windows/nanoserver:1903 mcr.microsoft.com/windows/nanoserver :latest
  14. 14. 2-4. Windows Worker Nodeセットアップ 1. KubernetesバイナリのC:¥kフォルダへのコピー 2. Kubernetes設定ファイルの作成 3. FlannelのダウンロードとOverlay方法の設定 4. Flannelを使う前提での 5. KubernetesとFlannelの実行 [参考] Joining Windows Server Nodes to a Cluster https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/joining- windows-workers?tabs=ManagementIP 14Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  15. 15. 3-1. Kubernetesのサービス化 • Powershell上でKubernetesのプロセスを動かしてきた。 • KubernetesでのWindows Node GA化に伴い、サービ スとして起動する手順も公開。 1. サービス化に必要なファイルの入手 2. サービス化スクリプトの実行 [参考] Kubernetes Components as Windows Services https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/kube-windows- services?tabs=ManagementIP 15Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  16. 16. 3-2. サービス化に必要なファイルの入手 • https://nssm.cc/downloadからnssm.exeをダウン ロード • GithubのMicrosoft/SDNリポジトリからサービス登録用 Powershellスクリプトをダウンロード https://github.com/microsoft/SDN/blob/master/Kubernetes/flannel/register-svc.ps1 • nssm.exeとregister-svc.ps1をC:¥kフォルダに置く。 16Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  17. 17. 3-3. サービス化Scriptの実行 • 各引数に入れるパラメータを確認した上で、 サービス化Scriptを実行 17Copyright © 2019 System Center User Group Japan. All Rights Reserved. PS C:¥> cd C:¥k¥ PS C:¥k¥> C:¥k¥register-svc.ps1 -NetworkMode overlay -ManagementIP <NodeのIP> - ClusterCIDR 10.244.0.0/16 -KubeDnsServiceIP 10.96.0.10 -LogDir <Log保存Directory>
  18. 18. Kubernetes管理OSS「Rancher」の紹介 Section 2 18Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  19. 19. Rancherとは • マルチクラウド環境でも共通のUIからKubernetesの Deploy/ManageができるOSS。 • Rancher社はCloudStackを作ったCloud.com CEOだっ たSheng Liangが創業。 • Rancherの他にもK3S, K3OS, Longhornなどの 開発をしている。 • 2.3からWindowsをサポート 19Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  20. 20. Kubernetes Worker Node (Windows) Windowsコンテナ Kubernetes Master (Linux) コンテナ Rancher有りのKubernetes管理プロセス 20Copyright © 2019 System Center User Group Japan. All Rights Reserved. etcd kube-apiserver kube-controller- manager kube-scheduler Rancher-wins- kube-proxy.exe Rancher-wins- kubelet.exeflannel Rancher-wins- flanneld.exe coredns iptables HNS CNI CNI Kube-proxy Rancher-agent-win kubelet kube-proxy nginx-proxy service-sidekick
  21. 21. Windows WorkerでのRancherプロセス • “rancher-wins”サービスの下で kubelet, kube-proxy, flanneld などのプロセスが起動。 • 外部からの接続のためのnginx も起動。 • 監視を有効化するとWMIデータ 出力のためのプロセスも起動。 21Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  22. 22. Windows Worker上のRancherコンテナ • Rancher AgentとRancher Prometheus関連コンテナ が起動 • Kubelet, kube-proxyなどのコンテナも起動 22Copyright © 2019 System Center User Group Japan. All Rights Reserved. PS C:¥> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0292450b9a85 8d37be5c4f24 "pwsh -f entry.ps1" 6 hours ago Up 6 hours k8s_exporter-node_exporter-node-windows-cluster-monitoring-rrcqj_cattle- prometheus_ ・・・ 80ccc7300cac rancher/kubelet-pause:v0.1.3 "cmd /c ping -t 127.ΓCa" 6 hours ago Up 6 hours k8s_POD_exporter-node-windows-cluster-monitoring-rrcqj_cattle-prometheus_ ・・・ 820e97cf76ff a27b60ac8365 "pwsh -NoLogo -NonInΓCa" 6 hours ago Up 6 hours k8s_agent_cattle-node-agent-windows-t6vhw_cattle-system_ ・・・ f1a8bc55cd9d rancher/kubelet-pause:v0.1.3 “cmd /c ping -t 127.ΓCa” 6 hours ago Up 6 hours k8s_POD_cattle-node-agent-windows-t6vhw_cattle-system_・・・ 90e6d509369f rancher/rke-tools:v0.1.50 "pwsh -NoLogo -NonInΓCa" 6 days ago Up 6 hours nginx-proxy 3978090ae9b0 rancher/hyperkube:v1.15.5-rancher1 "pwsh -NoLogo -NonInΓCa" 6 days ago Up 6 hours kubelet 2faa393c2f46 rancher/hyperkube:v1.15.5-rancher1 "pwsh -NoLogo -NonInΓCa" 6 days ago Up 6 hours kube-proxy 69c499089bcb rancher/rke-tools:v0.1.50 "pwsh -NoLogo -NonInΓCa" 6 days ago Up 6 hours service-sidekick
  23. 23. Rancherのインストール • Rancherを起動するサーバーで以下の1行を実行 • Ufw (Firewall)設定でTCP/80,443を許可 23Copyright © 2019 System Center User Group Japan. All Rights Reserved. # docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:<version> # ufw allow 80/tcp Rules updated Rules updated (v6) # ufw allow 443/tcp Rules updated Rules updated (v6)
  24. 24. Rancherの初期設定 • https://(rancherのIP)/にアクセス • 初期パスワード設定、自URL設定を入力 24Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  25. 25. Rancher 2.3を使ったWindows Container クラスタ構築 Section 3 25Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  26. 26. k8s Master (Ubuntu 18.04.3) iptables 本日構築するデモ環境 26Copyright © 2019 System Center User Group Japan. All Rights Reserved. Rancher (Ubuntu 18.04.3) Windows Worker (Windows 2019) 外部NW 192.168.1.0/24 vSwitch NAT コンテナNW 10.244.2.0/24 10.244.2.2 192.168.1.72 iptables NAT コンテナNW 172.17.0.0/16 172.17.0.1/16 192.168.1.60 NAT コンテナNW 10.244.0.0/24 10.244.0.1 192.168.1.61 Ingress controller (Ubuntu 18.04.3) iptables NAT コンテナNW 10.244.1.0/24 10.244.1.1 192.168.1.62
  27. 27. Kubernetes Masterの自動構築 1. “Add Cluster”をクリック 2. Select Cluster Typeで は”From existing nodes (Custom)”を選択し、Custom クラスター構築へ進む。 27Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  28. 28. Kubernetes Masterの自動構築 28Copyright © 2019 System Center User Group Japan. All Rights Reserved. 3. “Cluster Name”に任意の名称を設定。 4. ”Kubernetes Options”内でNetwork Providerを「Flannel」に変更。 5. “Windows Support”が選択できるよ うになるので「Enabled」を選択。 6. ”Flannel Backend”の項が”VXLAN” であることを確認。 7. 画面最下部の”Next”をクリック。
  29. 29. Kubernetes Masterの自動構築 29Copyright © 2019 System Center User Group Japan. All Rights Reserved. 8. “Node Operating System”で 「Linux」を選択。 9. ”Node Role”内で「etcd」「Control Plane」にのみチェックを入れる。 10.画面下部に表示されたコマンドをコ ピーして、Master Nodeとなる Linuxサーバーにて実行。 11.“1 new node registered”と表示さ れるまで待機。
  30. 30. Ingress Controllerの自動構築 続けてLinux Workerをセットアップ 1. “Node Role”を「Worker」だけに チェックをつける。 2. 画面下に表示されるコマンドをコ ピーし、Ingress Controller用 Linuxサーバーで実行する。 3. “1 new node registered”と表示 されたら”Done”をクリック。 30Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  31. 31. Ingress Controllerの自動構築 • 自動でKubernetes MasterとIngress Controllerの構築 が進むのでしばらく待機。 ※エラー表示でも、10分程度は我慢する。 31Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  32. 32. Master/Ingress構築後の状態確認 32Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  33. 33. Windows Workerの自動構築 1. Clusterにノードを追加する ため、”Edit”をクリック。 33Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  34. 34. Windows Workerの自動構築 2. 画面最下部の”Node Operating System”で 「Windows」を選択。 3. “Node Role”で「Worker」だ けを選択。 4. 表示されているコマンドをコ マンドプロンプトで実行。 5. “1 new node has registered”と表示された ら”Save”をクリック。 6. 自動構築完了まで待機。 34Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  35. 35. デモ • サンプルアプリケーションの実行 • Rancher UIのデモ • クラスタのモニタリング 35Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  36. 36. まとめ Section 4 36Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  37. 37. まとめ 37Copyright © 2019 System Center User Group Japan. All Rights Reserved. • WindowsでKubernetesクラスタを手動構築するのは非 常に手間がかかっていた。 • Flannel on WindowsのVXLAN Overlay関連コードの実 装も実はRancherの人がやっているので、Rancherから の構築も親和性が高い。 • RancherはWindowsに限らずKubernetesのデプロイか ら管理・監視までを簡単にできるような機能が豊富。
  38. 38. 参考文献 • Rancher 2.x Docs – https://rancher.com/docs/rancher/v2.x/en/ • Joining Windows Server Nodes to a Cluster – https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/joining-windows- workers?tabs=ManagementIP 38Copyright © 2019 System Center User Group Japan. All Rights Reserved.
  39. 39. END ご清聴、ありがとうございました 39Copyright © 2019 System Center User Group Japan. All Rights Reserved.

×