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
84
OSSでセキュリティをCI/CDパイプラインに透過的に取込む方法
qiang1981cn
0
160
Rancher v2.6.5 Update情報
qiang1981cn
0
360
NeuVector(Container Security) online meetup 06/30
qiang1981cn
0
330
Harvester 2022/01, オンラインミートアップ
qiang1981cn
0
200
Japan International Kubernetes Day
qiang1981cn
0
57
2021/01/20(水) はじめてのRancherオンラインミートアップ
qiang1981cn
0
310
"Rancherハンズオン with v2.5" ワークショップ 2020/12
qiang1981cn
0
350
Rancher Day 2020 - Rancher Update(racher v2.5))
qiang1981cn
0
63
Other Decks in Technology
See All in Technology
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
540
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Engineer Career Talk
lycorp_recruit_jp
0
190
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
100
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.1k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
The Cult of Friendly URLs
andyhume
78
6k
4 Signs Your Business is Dying
shpigford
180
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Site-Speed That Sticks
csswizardry
0
28
Scaling GitHub
holman
458
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
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