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
OPENSHIFT4.2のインストールツールに見るクラスタの構築方法について
Search
SSSSSSSSSSSSHHHHHHHHHH
December 20, 2019
Technology
0
310
OPENSHIFT4.2のインストールツールに見るクラスタの構築方法について
OPENSHIFT4.2のインストールツールから
Self-Hosting Kubernetesという要点に基づいて説明しました。
SSSSSSSSSSSSHHHHHHHHHH
December 20, 2019
Tweet
Share
More Decks by SSSSSSSSSSSSHHHHHHHHHH
See All by SSSSSSSSSSSSHHHHHHHHHH
ベストプラクティス・ドリフト
sssssssssssshhhhhhhhhh
2
560
認定スラクムマスター研修 受講報告
sssssssssssshhhhhhhhhh
0
190
コンテナレジストリサーバーにコンテナ以外のものを格納する
sssssssssssshhhhhhhhhh
2
1.6k
Azure AD Pod Identityについて
sssssssssssshhhhhhhhhh
2
1.5k
AKSのdashboardは無効化したほうがよいか?
sssssssssssshhhhhhhhhh
0
120
Other Decks in Technology
See All in Technology
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
340
技術選定、下から見るか?横から見るか?
masakiokuda
0
190
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
940
Introduction to Bill One Development Engineer
sansan33
PRO
0
340
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
580
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
21k
コミュニティが持つ「学びと成長の場」としての作用 / RSGT2026
ama_ch
0
200
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
570
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
170
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
650
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Amusing Abliteration
ianozsvald
0
85
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
690
So, you think you're a good person
axbom
PRO
1
1.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Darren the Foodie - Storyboard
khoart
PRO
2
2.1k
Agile that works and the tools we love
rasmusluckow
331
21k
Designing Powerful Visuals for Engaging Learning
tmiket
0
200
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
120
Transcript
OPENSHIFT4.2のインスト レーションツールに見るクラ スタの構築方法について @genboku
2 本日の流れ 1. Kubernetesのアーキテクチャ 2. Self Hosting Kubernetes 3. OpenShiftのインストール
3 Kubernetesのアーキテクチャ Kubectl API server replication, namespace, serviceaccounts, etc. -controller-
manager -scheduler etcd Master node Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Internet https://github.com/Azure/aks-bestpractices- ignite19/blob/master/slides/ignite19_bestpractices_v2.pptx より改変
4 Kubernetesのアーキテクチャ Kubectl API server replication, namespace, serviceaccounts, etc. -controller-
manager -scheduler etcd Master node Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Internet https://kubernetes.io/ja/docs/concepts/overview/components/ • Kubernetesクラスタが機能す るために必要なノード ・マスターノード ・ワーカーノード • 各ノードにはクラスターが機 能するためのコンポーネント が存在
5 ノード/コンポーネントはどうやって配置される? Kubectl API server replication, namespace, serviceaccounts, etc. -controller-
manager -scheduler etcd Master node Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Worker node kubelet kube-proxy Container Runtime Pod Pod Containers Containers Internet https://github.com/ivanfioravanti/kubernetes-the-hard-way-on-azure Kubernetes the hardway on Azureの場合 • マスターノードとワーカー ノード ⇒VMとしてコマンドで直接起動 ・コンポーネント ⇒ VMの中でSystemdに登録さ れた常駐プロセスとして起動
6 …OpenShiftは?
7 oc get pods –A を実行
8 実行結果からわかること ・OpenShiftのマスターノードコンポー ネントはコンテナ/Podとして動く (Systemdなどに登録された常駐プロセス ではない) ・OpenShift自身が管理 = Self Hosting
Kubernetes
9 Self Hosting Kubernetesとは? Proposal: Self-hosted Control Planeより抜粋 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cluster-lifecycle/self-hosted-kubernetes.md Kubernetesクラスターの必須コンポーネントとオプションコン
ポーネントをKubernetes自体の上で実行すること Kubectl API server replication, namespace, serviceaccounts, etc. -controller- manager -scheduler Master node kubelet Container Runtime
10 メリット Proposal: Self-hosted Control Planeより抜粋 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cluster-lifecycle/self-hosted-kubernetes.md 1. ホスト(マスターノード)が必要なコンポーネントが 少なくなるのでインストール手順が簡素になる
2. デプロイメント方法(キッティング手順)が一貫性の ある操作で行える 3. イントロスペクション: Kubernetes APIを使用し て自分自身のデバッグを行える 4. クラスターのアップグレードをKubernetes APIを 介して行える 5. より簡単に高可用性な構成を組むことが可能になる
11 …ちょっと待ってください (これにたどり着いたときの自分の心の声)
12 APIサーバーのPodは そもそもどうやって デプロイしたか?
13 鶏と卵問題
14 ・StaticPodはkubeletが指定した所定のフォルダにyamlファ イルを置くとPodとして起動してくれる仕組み ・APIサーバーに接続できない状態でもkubeletに合わせて確実 に起動するのでログやVM等のAgentとして利用できる ※Static Podについて
15 OpenShift インストールツールで Self Hosting Kubernetesの実装を確認 してみましょう
16 説明の前に (免責事項) • OpenShift installer(OCP4.2.9)のmasterブランチのソース コードをリーディングした結果に基づいています • OpenShift on
Azure(Managedではなく、インストールツー ルで構築できる方)で構築してログを観察した推察を含んでいま す • 解説者はJava, Ansibleと心中したいので、golang, Terraformについては詳しくありません。Logrusのメソッド をたくさん仕込んで動作を確認しましたが、説明等至らないこ とがあればご容赦ください。大きな誤りがあれば遠慮なくおっ しゃってください。
17 OpenShiftのインストレーションツールが内部で行っている処理 openshift-install create cluster bootstrap用VM master用VM 1. Bootstrap用VMとMaster ノード用VMを作成
• 作成されたVMには何もコン ポーネントはインストール されない • この時点ではWorkerノード 用VMは作成されない
18 OpenShiftのインストレーションツールが内部で行っている処理 Ignitionファ イル bootstrap用VM master用VM 2. Ignitionと呼ばれるプロビ ジョニングツールを利用した、 サービスの起動処理の実施
→次のページで詳しく説明し ます
19 Terraformの特性とIgnitionを利用する理由 • Terraformは構築後のVMにアプリケーションをインストール することをあまりお勧めしていない(ようだ) https://www.terraform.io/docs/cloud/run/install-software.html • OpenShiftインストーラーはこの問題?を次の設定で解決 • 予め必要なツールがインストールされたVHDを用意
https://github.com/openshift/installer/blob/master/data/data/rhcos.json • RHCOSの独自機能であるIgnition※を利用したSystemdのサー ビス起動 ※CoreOS Container Linux専用に設計されたプロビジョニング ユーティリティツール。ユーザースペースがブートを開始する前 (initiramfsで)に構成を完了することができる。 https://coreos.com/ignition/docs/latest/
20 OpenShiftのインストレーションツールが内部で行っている処理 bootstrap用VM 3. Ignitionにより kubelet.service, bootkube.serviceなどの サービスが起動 ⇒bootstrap用VMの中に 簡易版Openshiftを構成する
21 OpenShiftのインストレーションツールが内部で行っている処理 bootstrap用VM 4. bootstrap用VMの中に構成 された簡易版Openshiftは MachineConfigOperatorなど のマニフェストファイルを順番 にデプロイ、実行 •
すでにVMがあるmaster用 VMには更にキッティングを 行い、必要なコンポーネント (apiserver, controller- manager, scheduller)は Operatorを通じて配置する • 存在しないworker用VMは作 成から行う master用VM worker用VM
23 OpenShiftのインストレーションツールが内部で行っている処理 bootstrap用VM 5. 下記の条件を確認後、bootstrap 用VMを削除 ・Serverのバージョン情報を取得で きること(oc get versionのServer
側と同じ情報) ・”bootstrap”configmap に”status: complete”が書き込ま れること master用VM worker用VM openshift-install create cluster
24 まとめ 1. OpenShiftのMasterノードのコンポーネントは OpenShift自身が管理している(Kubernetes Self Hosting) 2. OpenShiftのインストールツールはbootstrap用 VMの中に縮小版OpenShiftを作成し、構築対象
のOpenShiftのコンポーネントを配置している
25 参考資料 赤帽ブログ全般 https://rheb.hatenablog.com/ Openshift Installerリポジトリ https://github.com/openshift/installer/ OpenShift 4: Install
Experience https://blog.openshift.com/openshift-4-install-experience/ Installation and update https://docs.openshift.com/container-platform/4.2/architecture/architecture- installation.html Bootkubeリポジトリ https://github.com/kubernetes-sigs/bootkube/