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.6
Search
cheng
September 04, 2019
Technology
1
140
Rancherコンテナー管理プラットフォームの概要説明V2.2.6
Rancherコンテナー管理プラットフォームの概要説明 V2.2.6
cheng
September 04, 2019
Tweet
Share
More Decks by cheng
See All by cheng
OSSでセキュリティをCI/CDパイプラインに透過的に取込む方法
qiang1981cn
0
160
Rancher v2.6.5 Update情報
qiang1981cn
0
330
NeuVector(Container Security) online meetup 06/30
qiang1981cn
0
280
Harvester 2022/01, オンラインミートアップ
qiang1981cn
0
190
Japan International Kubernetes Day
qiang1981cn
0
55
2021/01/20(水) はじめてのRancherオンラインミートアップ
qiang1981cn
0
300
"Rancherハンズオン with v2.5" ワークショップ 2020/12
qiang1981cn
0
340
Rancher Day 2020 - Rancher Update(racher v2.5))
qiang1981cn
0
60
Rancher Update 2020/10,Rancher v2.5の最新情報
qiang1981cn
0
270
Other Decks in Technology
See All in Technology
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
39k
分野に潜むツールの紹介
pojiro
1
330
自社開発した大規模言語モデルをどうプロダクションに乗せて運用していくか〜インフラ編〜
pfn
PRO
4
680
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
APIのドキュメント化何使ってますか?
miu_crescent
2
160
HolidayJp.jl を作りました
mrkn
0
110
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
2
130
Practical GenAI with Go - Elastic and Golang Sydney
adriancole
0
130
目標設定と習慣化で今よりも一歩生産性を上げる
sansantech
PRO
7
2.3k
SHIFTの課題と目指したい組織像 / 20240827 Rinto Ikenoue
shift_evolve
0
140
20分で分かるIAM全機能 (拡大版) / 20240903-jawsug-yokohama-iam
opelab
3
120
バックログを導入し やっぱやめた話
ota42y
0
170
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
179
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Designing for Performance
lara
604
68k
YesSQL, Process and Tooling at Scale
rocio
167
14k
The Brand Is Dead. Long Live the Brand.
mthomps
53
37k
How GitHub (no longer) Works
holman
309
140k
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
122
18k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
How STYLIGHT went responsive
nonsquared
93
5.1k
Transcript
Rancherコンテナ管理プラットフォーム
About me Jianqiang Cheng(ちん) Field Engineer at Rancher Labs. ▪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 Hands-on time ハンズオン手順の「Kubernetesクラスター構築と管理」セクション 約20分
16 ユーザー認証
ユーザー認証方式 Rancherは、ローカル認証以外に も、マイクロソフトのAD認証、 Github認証などの複数の認証プロバ イダをサポートをしています。
マルチクラスターで統一した認証・認可 Rancherは複数の階層で、管理対象を隔離しています。 ・クラスタレベル:異なるユーザーはクラスタレベルで隔離でき、それぞれ独立したCPU、メモリ、スト レージ、ネットワークリソースを使用することができます。ユーザは、権限を持つクラスタのみを参照編集す ることができます。 ・プロジェクトレベル:同じクラスタ内部で、プロジェクトレベルで隔離するが可能です。ユーザは、権限 を持つプロジェクトの中のnamespaceやアプリのみを参照編集することができます。
マルチクラスターで統一した認証・認可 ユーザー毎に、Rancherが事前に用意して あるロール(クラスタレベルとプロジェクト レベル)を割当することができますが、用途 に応じてRancher管理者がカスタマイズで作 成したロールを割当することもできます。
20 Hands-on time ハンズオン手順の「ユーザー認証」セクション 約15分〜
21 ワークロードのデプロイと管理
ワークロードのデプロイ 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
35 Hands-on time ハンズオン手順の「アプリデプロイとアプリ管理」セクション 約20分〜
36 カタログ機能
カタログ機能 - 概要 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から簡単に行えます。 カタログ機能 - アプリのバージョンアップとロールバック
41 永続化ストレージの使用
・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上に永続化ストレージを使用
45 Hands-on time ハンズオン手順の「カタログ機能」と「永続化ストレージの使用」セクション 約15分〜
46 運用監視機能
• Rancherには、モニタリング機能がデフォルトで搭載されています。 運用監視機能 - アーキテクチャ
• クラスター全体のサマリー情報は、ダッシュボードから確認できます。 • 詳細情報は、Grafana画面からメトリック毎に確認できます。 運用監視機能 - モニタリング
• デフォルトで、Etcd、Kube-ComponetnsとNodeなどの基本のアラートルールが設定されています。 • 要件に合わせて、既存ルールのカスタマイズと新規ルールの追加もできます。 運用監視機能 -アラート
• 前述のアラートの連携・通知先として、Slack、Email、PegarDuty、Webhookなどが設定できます。 運用監視機能 - 通知
Rancherは、クラスタレベル/プロジェクトレベルのログ収集転送をサポートしています。 UI画面から、転送先のエンドポイント設定だけで、多様なサービス(ElasticSearch、Spluck、Kafkaなど) との連携が可能です。 運用監視機能 - Logging
デフォルトで提供しているもの以外に、カタログ機能画面にも多様なツール(Datadog、ElasticSearch、Kibana、 Fluentdなど)が用意されています為、要件に合わせて、任意のカタログのアプリのデプロイができます。 運用監視機能 - その他
53 Hands-on time ハンズオン手順の「運用監視機能」セクション 約15分〜
54 GUI以外のユーザーインタフェース
GUI以外に、Rancherは、APIとCLIも提供しています。 Rancher APIとCLI
56 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の実行結果の確認
62 Multi-cluster apps And Global DNS
概要 負荷分散、高可用のため、同じのアプリを異なるクラスタ上に稼働させます。
Multi-cluster apps機能 - 概要 Rancherのカタログ機能の拡張です。 カタログ機能: Rancher管理下にある1つのクラスタにアプリをデプロイすることができます。 Multi-cluster apps機能:Rancher管理下にある複数のクラスタに対し、同時にアプリをデプロイすることができます。 デプロイ先のクラスタ指定など一部の項目が異なる以外に、基本の操作は、カタログ機能と同じです。
Global DNS機能 - 概要 下記のDNSプロバイダをサポートしています。 • AWS Route53 • AliCloud
AliDns • CloudFlare
Hands-on n ϋϯζΦϯखॱ • K8SのϋϯζΦϯखॱ(For WorkShop) • RancherϓϥοτϑΥʔϜͷϋϯζΦϯखॱ(For WorkShop) n
ϋϯζΦϯखॱ(Optional Task) • K8SϋϯζΦϯڥͱखॱPart2(For WorkShop)
Thanks