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
Rancherコンテナー管理プラットフォームの概要説明V2.2.3
Search
cheng
June 21, 2019
Technology
1
730
Rancherコンテナー管理プラットフォームの概要説明V2.2.3
Rancherコンテナー管理プラットフォームの概要説明 V2.2.3
cheng
June 21, 2019
Tweet
Share
More Decks by cheng
See All by cheng
Rancher v2.8 & v2.9 Update情報
qiang1981cn
0
88
OSSでセキュリティをCI/CDパイプラインに透過的に取込む方法
qiang1981cn
0
170
Rancher v2.6.5 Update情報
qiang1981cn
0
370
NeuVector(Container Security) online meetup 06/30
qiang1981cn
0
350
Harvester 2022/01, オンラインミートアップ
qiang1981cn
0
210
Japan International Kubernetes Day
qiang1981cn
0
62
2021/01/20(水) はじめてのRancherオンラインミートアップ
qiang1981cn
0
320
"Rancherハンズオン with v2.5" ワークショップ 2020/12
qiang1981cn
0
360
Rancher Day 2020 - Rancher Update(racher v2.5))
qiang1981cn
0
64
Other Decks in Technology
See All in Technology
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
150
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
160
2024年にチャレンジしたことを振り返るぞ
mitchan
0
150
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.4k
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
190
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
180
[JAWS-UG新潟#20] re:Invent2024 -CloudOperationsアップデートについて-
shintaro_fukatsu
0
120
12 Days of OpenAIから読み解く、生成AI 2025年のトレンド
shunsukeono_am
0
110
.NET 9 のパフォーマンス改善
nenonaninu
0
1.3k
UI State設計とテスト方針
rmakiyama
3
800
[Oracle TechNight#85] Oracle Autonomous Databaseを使ったAI活用入門
oracle4engineer
PRO
1
110
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
9
3.6k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Optimizing for Happiness
mojombo
376
70k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Practical Orchestrator
shlominoach
186
10k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
It's Worth the Effort
3n
183
28k
Transcript
Rancherコンテナ管理プラットフォーム
About me Jianqiang Cheng(ちん) Field Engineer at Rancher Labs. Slack:slack.rancher.jp
Email:
[email protected]
▪Favorite technologies: Rancher, Kubernetes, Docker, AWS, Jenkins. ▪Certifications: AWS Certified Solutions Architect – Professional Certified Kubernetes Administrator Certified Kubernetes Application Developer
RancherLabs製品 軽量コンテナOS 分散ブロックストレージ クラスタ間通信 コンテナ管理プラットフォーム 軽量Kubernetes ディストリビューション Cloud Nativeコンテナ ディス
トリビューション 本日のスコープ
Agenda • RancherのOverview • Rancherのインストール • Kubernetesクラスター構築と管理 (Hands-Onあり) • ユーザー認証(Hands-Onあり)
• ワークロードのデプロイと管理(Hands-Onあり) • カタログ機能(Hands-Onあり) • 永続化ストレージの使用(Hands-Onあり) • 運用監視機能(Hands-Onあり) • CICD • Multi-cluster apps And Global DNS
5 RancherのOverview
プラットフォームの構成概要図
プラットフォームのアーキテクチャ
8 Rancherのインストール
Single Node構成 開発やテスト環境の場合、1台のサーバーで、 docker runで、 Rancher serverをインストールする方法を推奨 SSL証明書オプション:デフォルトは自己署名証明書(Rancher自動生成) その他のSSL証明書オプション:↓ https://rancher.com/docs/rancher/v2.x/en/installation/single-node/#2-choose-an-ssl-option-and-install-
rancher
プロダクション環境の場合、HA構成のインストール方法を推奨 • Rancher Kubernetes Engine(RKE)でRancher用のK8Sクラスターを構築 • HelmでRancher Serverをクラスタへデプロイ • L4のロードバランサ(Nginx,AWS-NLBなど)をクラスターの入り口として設定
HA(High Availability)構成
11 Kubernetesクラスター構築と管理
Kubernetesクラスタ構築 Rancherは、オンプレミスやあらゆるクラウドサービ ス上にKubernetesクラスタの構築及び管理ができ るプラットフォーム: • Rancher Kubernetes Engine(RKE)経由で、あら ゆるインフラ環境上にKubernetesクラスタを構 築と管理
• 各PublicクラウドのAPI経由で,クラウドの Kubernetesマネジメントのクラスタを構築と管理 (Amazon EKS、Azure AKS、Google GCEなど) • 既存のKubernetesクラスタをインポートして Rancherで管理
Kubernetesクラスタ管理 RancherのUI画面から、下記のクラスタ管理機能をサ ポートしています。 • クラスター証明書期限切れ前の更新 • クラスターのバックアップとリストア • ブラザーUI画面からのkubectlコマンドの実行 •
クラスターのバージョンアップ • クラスターのノードのスケールアウトとスケールイン • クラスターの管理者や利用者のユーザー管理 • クラスターのプライベートなDockerレジストリ追加
Kubernetes のクラスタとNamespaceの間にプ ロジェクトという層が入り、複数の Namespaceを束ねて権限管理を行います。 プロジェクト = Namespaceのグループ • プロジェクトレベルのロール権限をユー ザーに付与できます。
• プロジェクト/namespaceレベルで、各リ ソースQuotas(CPU、メモリなど)の設 定が可能です。 • プロジェクトレベルで、ポッドセキュリ ティポリシーの設定が可能です。 クラスタ配下のプロジェクト管理
15 ユーザー認証
ユーザー認証方式 Rancherは、ローカル認証以外に も、マイクロソフトのAD認証、 Github認証などの複数の認証プロバ イダをサポートをしています。
マルチクラスターで統一した認証・認可 Rancherは複数の階層で、管理対象を隔離しています。 ・クラスタレベル:異なるユーザーはクラスタレベルで隔離でき、それぞれ独立したCPU、メモリ、スト レージ、ネットワークリソースを使用することができます。ユーザは、権限を持つクラスタのみを参照編集す ることができます。 ・プロジェクトレベル:同じクラスタ内部で、プロジェクトレベルで隔離するが可能です。ユーザは、権限 を持つプロジェクトの中のnamespaceやアプリのみを参照編集することができます。
マルチクラスターで統一した認証・認可 ユーザー毎に、Rancherが事前に用意して あるロール(クラスタレベルとプロジェクト レベル)を割当することができますが、用途 に応じてRancher管理者がカスタマイズで作 成したロールを割当することもできます。
19 ワークロードのデプロイと管理
ワークロードのデプロイ Rancherには、下記の種類のワークロードをデ プロイできます。 ・Deployment - ローリングアップデートなどの デプロイ ・ Deamonset -ノード毎のデーモンのデプロイ
・ Statefulset -ステートフルアプリケーション ・ Job -ジョブ・バッチ処理 ・ Cronjob -スケジュールジョブ
ワークロードのデプロイ ー サービスディスカバリ デプロイしたコンテナにアクセスできるよ うに下記のアクセス方式が設定できます。 ・ノードポート(全てのノード) ・ホストポート(Podがあるノードのみ) ・クラスターIP(クラスター内部閉じる通 信) ・L4ロードバランサー(AWS、GCPなどのクラ
ウドプラットフォームに依存)
• コンテナー単位にリソースの制限を設けること が可能です。 • CPUとメモリに対して、割当てられる下限値と上 限値が設定できます。 • CPU:1000 millicores =
1 vCPU(コア) • MEMORY:1M=1000*1000 1Mi=1024*1024 ワークロードのデプロイ ー リソース制限
スケジューリングは、新規に Pod が作成されたと きに最適なノードを選択して割り当てることです。 Rancherは、複数のスケジューリング方式をサポー トしています。 • 指定したノードへスケジューリング • ラベルがマッチしたノードへスケジューリング
• NodeAffinity/PodAffinityでスケジューリング ワークロードのデプロイ ー スケジューリング
LivenessProbeとReadinessProbeという2種類のヘルスチェック機構をサポートしています。 LivenessProbeもReadinessProbeも役割が異なるだけで、設定可能な内容は全く同じです。 ワークロードのデプロイ ー ヘルスチェック Probeの種類 役割 失敗時の挙動 LivenessProbe Podが正常に動作しているかの確認
Podを再起動する ReadinessProbe Podがサービスインする準備ができているかの 確認 トラフィックを流さない(Podを再起動しな い)
RollingUpdateとRecreateなどのアップデート戦略をサポートしています。 ※ワークロード種類によって、アップデート戦略の選択肢が異なります。 画面UIから、アップデート戦略の設定ができます。 ワークロードのデプロイ ー アップデート戦略
デプロイしたアプリに対して、UI画面から下記のラ イフサイクル管理や各種変更処理を行うことができ ます。 • 変更/削除 • クローン • SideCar追加 •
バージョンロールバック • 各種デバッグ機能(コンテナー接続など) • 一時停止/再開(変更適用待ち機能) ワークロード管理 ー ライフサイクル管理
UI画面から、直接にPODのコンテナーに接続して、シェルを実行できます。 障害調査や検証の際に、便利にコンテナーの中身確認ができる機能です。 ワークロード管理 ー コンテナー接続
UI画面から、直接に対象のPODのコンテナーのログ情報を確認できます。 障害調査や検証の際に、便利に利用できる機能です。 ワークロード管理 ー コンテナーログ参照
アプリのレプリカの数をアプリ起動時に設定できます。 起動後も、レプリカの変更や監視がUIから行うことができます。 ワークロード管理 ー 高可用性について
UI画面からのロールバック機能をサポートしています。 過去のバージョンに簡単にロールバックできます。 ワークロード管理 ー ロールバック
下記の種類のサービス作成をサポートしています。 • ClusterIP(クラスタ内部PODへロードバランサ) • NodePort(クラスタ外部からアクセス) • LoadBalancer(クラスタ外部からアクセス) • Headless(statefulアプリ対応) ワークロード管理
ー サービスディスカバリ ClusterIPNodePortLoadBalancerHeadless
Rancherには、Ingress(Nginx Ingress)機能がデフォルトに搭載しています 。 ワークロード管理 ー Ingress ClusterIPNodePortLoadBalancerHeadless
33 カタログ機能
カタログ機能 - 概要 Rancherのカタログ機能は、アプリケーションをカタログ化することによって、 何度でも簡単にアプリケーションデプロイを実現しています。 カタログ画面に、対象のアプリを選択し、画面から必要なパラメーターを入力 し、直ちに指定したところにデプロイできます。 ※ カタログ機能のベースとなっているHelmについて概 要を説明します。
Helmは、Chartというマニフェストをテンプレート化し たパッケージを管理するKubernetesのパッケージマ ネージャーです。 Helmによる操作および管理は、基本的にHelm Clientの HelmコマンドによるCLI操作となりますが、カタログ機 能ではHelmの操作が全てGUI上に行います。
カタログ機能 - Helm Chartリポジトリの種類 カタログ機能は下記のリポジトリの種類をサポートしています。 ・Rancher社のLibraryリポジトリ ・Helm公式のHelm Stableリポジトリ ・Helm公式のHelm Incubatorリポジトリ
・カスタムカタログ:ユーザが作成したChartリポジトリ(自社のアプリなど)
UI画面から、アプリのバージョン、デプ ロイ先や、パラメータの設定を指定して、 デプロイできます。 ※カタログ機能を使用することで、 Chartのパラメータ(values.yaml)を画 面UIからも簡単に上書きできます。 カタログ機能 –アプリに必要な情報をUIから指定
アプリのバージョンアップ、ロールバックも、GUIから簡単に行えます。 カタログ機能 - アプリのバージョンアップとロールバック
38 永続化ストレージの使用
・Persistent Volume PV(Persistent Volume)は、永続化領域として確保されるVolumeです。リソースとして個別に作成 してから、 PVC(Persistent Volume Claim)経由で利用する形になります。 永続化ストレージの概要 –
Persistent Volume
・Storage Class Storage ClassにProvisionerを設定することによって、Dynamic Provisioningができるようになります。 PVC(Persistent Volume Claim)が発行されたタイミングで、 Storage Classに指定しているProvisioner
で、動的にPV(Persistent Volume)を作成して、割り当てます。 永続化ストレージの概要 – Storage Class
Rancherには、前述の2つの方法で、永続化 ストレージをサポートしています。 ・Persistent Volume 複数のボリュームのプラグイン (AmazonEBS、Ceph、NFSなど)サポーターし ています。 ・Storage Class 複数のプロビジョナー
(AmazonEBS、 Ceph、Glusterなど)サポーターしています。 Rancher上に永続化ストレージを使用
42 運用監視機能
• Rancherには、モニタリング機能がデフォルトで搭載されています。 運用監視機能 - アーキテクチャ
• クラスター全体のサマリー情報は、ダッシュボードから確認できます。 • 詳細情報は、Grafana画面からメトリック毎に確認できます。 運用監視機能 - モニタリング
• デフォルトで、Etcd、Kube-ComponetnsとNodeなどの基本のアラートルールが設定されています。 • 要件に合わせて、既存ルールのカスタマイズと新規ルールの追加もできます。 運用監視機能 -アラート
• 前述のアラートの連携・通知先として、Slack、Email、PegarDuty、Webhookなどが設定できます。 運用監視機能 - 通知
Rancherは、クラスタレベル/プロジェクトレベルのログ収集転送をサポートしています。 UI画面から、転送先のエンドポイント設定だけで、多様なサービス(ElasticSearch、Spluck、Kafkaなど) との連携が可能です。 運用監視機能 - Logging
デフォルトで提供しているもの以外に、カタログ機能画面にも多様なツール(Datadog、ElasticSearch、Kibana、 Fluentdなど)が用意されています為、要件に合わせて、任意のカタログのアプリのデプロイができます。 運用監視機能 - その他
49 GUI以外のユーザーインタフェース
GUI以外に、Rancherは、APIとCLIも提供しています。 Rancher APIとCLI
51 CICD
Rancher Pipelinesは、Rancherに統合されたCI機能です。 パイプラインの実行にJenkinsを、各種アーティファクトの保管にMinioを、そしてコンテナイメージ の保管にDockerレジストリ(デフォルトの場合)を利用しています。 Rancher Pipelinesについて ▪Rancher Pipelineのアーキテクチャ
Rancher Pipelinesの使用例 ・ Rancher Pipeline機能:CI/CDのPipeline編集管理 ・ Rancherカタログ機能: CI/CDツールのインストール(Sonarqube、Nexusなど) Rancher Pipelinesについて
GitHub、GitLabまたはBitbucketのリポジトリと連携することで、コードのプッシュやプルリクエス トの作成、特定コミットへのタグ打ちなどが行われたタイミングで、パイプラインの実行をトリガー することができます。 外部ソースリポジトリとの連携 ▪参考: Rancher PipelineとGitLabとの連携設定の例
CI/CDのPipelineの各ステップの定義は、画面からも変更できます。 Rancher Pipelinesの定義と変更 ▪参考:Nexus、Sonarqubeと連携するビルドのステップの設定例
CI/CDのPipelineの実行結果は、画面から確認できます。 Rancher Pipelinesの結果確認 ▪参考: Pipelineの各ステッジの実行結果 ▪参考: Slack上にPipelineの実行結果の確認
57 Multi-cluster apps And Global DNS
概要 負荷分散、高可用のため、同じのアプリを異なるクラスタ上に稼働させます。
Multi-cluster apps機能 - 概要 Rancherのカタログ機能の拡張です。 カタログ機能: Rancher管理下にある1つのクラスタにアプリをデプロイすることができます。 Multi-cluster apps機能:Rancher管理下にある複数のクラスタに対し、同時にアプリをデプロイすることができます。 デプロイ先のクラスタ指定など一部の項目が異なる以外に、基本の操作は、カタログ機能と同じです。
Global DNS機能 - 概要 下記のDNSプロバイダをサポートしています。 • AWS Route53 • AliCloud
AliDns • CloudFlare
Thanks