このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


2024年12月20日金曜日

vCenter インストール時の 1ノード vSAN について確認してみる。vSANへのホスト追加編

今回も前回に続き、vCenter インストール時の 1ノード vSAN について確認を進めていきたいと思います。
インストール、ホストの追加、VMkernelおよび分散仮想スイッチの準備が終わったのでいよいよvSANにホストを追加します。

インストール時にvSANのサービス自体は有効になっているので、vSANのディスク管理を表示し「未使用のディスクの要求」を行います。
これは、追加したホスト達のディスクでディスクグループを作成するためです。

1台目と同じようにキャッシュとキャパシティを分けます。

成功すると以下のようになります。

データストアの容量を確認してみると、1ノードの時は約200GBの容量でしたが4台分の約800GBにちゃんとなっています。

そのほか状態を確認してみると、オブジェクトの再同期で何やら処理が行われています。
これは、vSANに配置されているvCenterの仮想マシンのディスクに対してvSANのデフォルトのポリシーが割り当てられているからです。
vSANのデフォルトポリシーはディスクのミラーリングが設定されているため、その処理を行っています。

1ノードの状態では、ディスクを冗長化してもホストが停止したら共倒れになるため冗長化は行われません。
他のホストが追加されたので別ホストへディスクの冗長化を出来るようになったため処理が実行されています。
仮想マシンの仮想ディスクがポリシーに沿って冗長化されているかどうかなどは、「仮想オブジェクト」から確認可能です。

vCenterインストール時に1ノードvSANを構築して、あとからホストを追加してみる検証でした。

2024年12月13日金曜日

Okta WIC 入門者向けガイド

これからしばらくの間、自分の勉強のためにOktaをテーマとして定期的にブログを書こうと思います。今回のお題は、「Okta WIC入門者向けカイド」です。

はじめに

いざ勉強しよう、と思ってもどこから始めればいいのか迷う場合もあるかと思います。私の体験からこれからOkta Workforce Identity Cloud(WIC)を勉強する人に向けておすすめの学習、情報収集方法をご紹介します。本ブログでは以下をご紹介します。

  • Oktaが提供する2つのサービス
  • Oktaはクラウドサービス
  • Okta WICエンジンの変更
  • Okta WICハンズオンに参加する
  • 書籍を購入する
  • トライアル環境を利用する
  • Okta関連のブログを読む
  • Oktaのドキュメントをさらっと読む
  • OktaのKBを眺める
  • Oktaのコミュニティを眺める
  • Oktaユーザーコミュニティには参加する
  • 情シスSlackに参加する
  • 認定試験を受ける

Oktaが提供する2つのクラウドサービス

Oktaの学習を始める前にOktaが提供する2つのクラウドサービスについて理解しておきましょう。Oktaは企業の従業員のID管理を提供する「Workforce Identity Cloud(以下、WIC)」と顧客サービス向けID管理を提供する「Customer Identity Cloud(CIC)」という2つのクラウドサービスを提供しています。この2つのサービスを知らないままドキュメントを読んだりセミナーを受講すると混乱します。ドキュメントやセミナーでどちらをテーマとしているのか都度確認することをおすすめします。本ブログでは、WICについてご紹介します。

Oktaはクラウドサービス

クラウド利用が当たり前になった今さらな話ですが、クラウドサービスは日々進歩するため、定期的に情報収集することをおすすめします。また、公開されているブログや書籍などの内容も現在のサービスと合致するのか判断することが大切です。ベースとなる機能や考え方に差はないですが、仕様の変更、UIデザインの変更、デフォルトパラメーターの変更、ドキュメントの変更などは年に少なくとも数回は発生します。また、OktaはOktaだけで完結するのではなく他のSaaSと連携するので他のSaaSの影響も受けます。運用するのであればOktaのリリースノートやKBは定期的に閲覧しておくと良いと思います。

Okta WIC 新旧2つのエンジン

本ブログ執筆の2024年時点において、Oktaには新しい「Identity Engine」と従来の「Classic Engine」の新旧2つのエンジンが提供されています。これから始める人は「Identity Engine」の利用になります。「Classic Engine」を操作することはありませんが、公開されている情報や書籍では「Classic Engine」のことが書かれているケースもありますので情報の精査が必要です。

Okta WICハンズオンに参加する

Oktaでは定期的にハンズオンセミナーを開催しています。まずはそのハンズオンセミナーに参加することをおすすめします。ハンズオンセミナーではOktaでどのようなことができるか講師の説明を聞きながら実際にOktaテナントを操作して体感できます。

Okta イベント

https://www.okta.com/jp/resources/events/

書籍を購入する

オライリーより日本語のOkta書籍が販売されています。

マスタリングOkta ―IDaaS設計と運用(発行年月日2021年12月)

https://www.oreilly.co.jp/books/9784873119717/

こちらは記載内容が「Classic Engine」の内容です。またすでに名称が変更または廃止されたサービスもあります。基本的な考えには差がないので参考にはなる部分も多くあります。もし、周りにOktaに詳しい人がいるのなら今のOktaと書籍の差分について聞いてみてください。英語の本でもよい方には原書の最新版を購入して読んでみるのも良いかと思います。

New Book: Okta Administration Up and Running

https://support.okta.com/help/s/blog/a674z000000143FAAQ/new-book-okta-administration-up-and-running?language=en_US

Okta Administration Up and Running: Drive operational excellence with IAM solutions for on-premises and cloud apps (English Edition) 

https://www.amazon.co.jp/-/en/HenkJan-Vries-ebook/dp/B0C4YRRFYY/

トライアル環境を利用する

ハンズオンセミナーに参加して書籍も読んである程度Oktaについて理解したならトライアル環境を利用して知識を深めることをおすすめします。トライアル環境は申込み後、30日まで利用できます。OktaトライアルはOktaホームページから申請します。

Okta

https://www.okta.com/jp

Okta Japan のブログでトライアル環境の構築について紹介されています。

はじめてのOkta Workforce Identity Cloud (WIC) トライアル環境の構築
https://www.okta.com/jp/blog/2023/03/building-your-first-okta-workforce-identity-cloud-trial-environment/

Oktaだけでなくディストリビューター(1次代理店)やリセラー(2次代理店)の中には以下のようにトライアルガイドを用意しているケースもあります。

無償トライアル開始ガイド

https://www.macnica.co.jp/en/business/security/manufacturers/okta/guide_trial_tenant_launch.html

余談になりますが、Oktaの日本国内代理店は以下から確認できますのでお付き合いのある会社に相談してみるのも良いかと思います。

Okta パートナー認定資格(日本)

https://www.okta.com/jp/partners/accreditation/ 

Okta のパートナー

https://www.okta.com/jp/partners/meet-our-partners/ 

Okta関連のブログを読む

Okta Japanがシリーズでブログをいくつか掲載しています。特にAPIやWorkflowsについては一度読んで実際に試してみることをおすすめします。

Okta 日本語ブログ

https://www.okta.com/jp/blog/

ディストリビューターやリセラーの中にはブログでOktaに関する様々な情報発信している企業もあります。主なブログサイトのいくつかを以下にご紹介します。

クラウドネイティブ

https://blog.cloudnative.co.jp/tag/okta/

ネクストモード

https://info.nextmode.co.jp/blog/tag/okta

LAC

https://www.lac.co.jp/lacwatch/digital_identity/

TECHVAN

https://blogs.techvan.co.jp/okta/

マクニカ

https://www.macnica.co.jp/business/security/manufacturers/okta/feature.html

SBC&S

https://licensecounter.jp/engineer-voice/blog/brand/okta/

英語でも問題ない場合は以下のブログもおすすめです。

iamse.blog

https://iamse.blog/

Oktaのドキュメントをさらっと読む

Oktaを操作する上でOktaドキュメントは必ず読むと思います。全てを熟読せず一度どのような機能があるのか全体的にさらっと読むことをおすすめします。

Okta Identity Engine

https://help.okta.com/oie/ja-jp/content/topics/identity-engine/oie-index.htm

OktaのKBを眺める

Oktaを操作している中でOktaドキュメントの情報だけでは不十分なケースもあります。Okta KBをチェックすることでOktaドキュメントで足りない情報を得ることができます。設定やトラブル、機能の詳細を調べるときにはまずKBで検索しても良いかもしれません。基本的に英語です。

Okta KB

https://support.okta.com/help/s/knowledge?language=en_US

Oktaのコミュニティを眺める

OktaドキュメントでもKBでもインターネットでも公開されている情報がないような場合、コミュニティで聞いてみるのも良いかと思います。英語でのやり取りになりますが、Oktaコミュニティは活発に情報交換されているように思います。

Okta Community

https://support.okta.com/help/s/community?language=en_US

Oktaユーザーコミュニティに参加する

IT勉強会支援プラットフォームconnpassにOktaに関して勉強していくユーザグループがあります。1年に数回程度の開催のようです。過去の動画はYoutubeに公開されています。日々運用しているユーザーの経験を学べる貴重な場かと思います。登録だけしておいても良いかと思います。

Japan Okta User Group Community

https://okta.connpass.com/

情シスSlackに参加する

情シスSlackのtopic-idでOktaについて質問されることがあります。企業の情シス部門に勤めている方であれば、Oktaコミュニティではなくそちらで質問するのも良いかと思います。

Okta認定試験を受ける

Okta WICについて体系的に学ぶためにOktaの認定試験を受けるのも良いと思います。
Oktaには、基礎レベルのOkta Certified Professional、管理者レベルのOkta Certified Administrator、高度な知識理解を証明するOkta Certified Consultantという3つの認定があります。まずは基礎レベルのOkta Certified Professional合格を目指して勉強するとより知識が深まるかと思います。

Okta認定 

https://www.okta.com/jp/services/certification/

日本語で受講可能!Oktaトレーニング、認定資格試験

https://www.okta.com/jp/blog/2023/06/ribenyuteshoujiangkenengoktatoreninkurendingzigeshiyan/

試験は試験会場ではなく、オンラインで試験監督に監視されながら自宅などで受験します。詳細は以下のような受験体験記のブログを確認すると良いと思います。

新卒1年目、Okta認定資格を1か月で2個取得した受験記https://www.lac.co.jp/lacwatch/people/20240322_003733.html

さいごに

今回は私がOkta入門者の方が迷わないようにお伝えしたいことをまとめてみました。次回以降はOktaのトライアル環境を利用して何かブログを書いてみようと思います。今回はこの辺で。それでは。 

2024年11月29日金曜日

vCenter インストール時の 1ノード vSAN について確認してみる。vSAN構築準備編(ちょっとした分散仮想スイッチの使い方)

今回は前回に続き、vCenter インストール時の 1ノード vSAN について確認を進めていきたいと思います。
インストール後、ホストを追加して通常のvSANを構築するための準備回です。
主に分散仮想スイッチの話になりますかね。

vSAN構築前の準備として、ホストを追加します。

分散仮想スイッチを作ります。 標準仮想スイッチでもいいんですが、こっちのほうが楽なので・・・(後で説明します。
MTUは9000にしておきます。

vSAN用とvMotion用のポートグループも作っておきます。

ここで、作成したvSAN用の分散ポートグループを右クリックします。
「VMkernelアダプタの追加」をクリックします。

全台のESXiをチェックします。

vSANの機能をチェックします。

1台分のネットワーク設定をします。
そして、残りはオートフィルが使えるのでそれで設定します。
これが楽で分散仮想スイッチを使いたかったんですよね。
オートフィルを使うとこちらは連番で自動入力してくれます。
サブネット側もやっていきましょう
こちらは使う値は全部一緒なので自動で全部同じにしてくれます。

vMotionについても同じように作成し、ホストのVMkernel構成を見てみると以下のように作成されます。 1台1台やるとIPがズレてたりしますが、この方法ならそういう事がないので安心です。

これで準備が整いました。
次回はいよいよ1ノードvSANに他ホストを追加していきたいと思います。

2024年10月31日木曜日

vCenter インストール時の 1ノード vSAN について確認してみる。インストール編

今回は、久々にvSphereに関する内容です。
よく検証でvCenterをインストールしますが、その際に目にはしていたけど結局使ったことなかったなという機能を今回は試してみたいと思います。

マニュアルで言うとこの内容ですね。
https://docs.vmware.com/jp/VMware-vSphere/8.0/vsan-planning/GUID-88B7E093-988E-48E4-A1BB-9A357D8BAC38.html

シングルホストのvSANが構築されるようなので、それができる事とそこへESXiを追加して合計4台でvSANを組む構成にできるか試してみようと思います。

まず環境です。

vCenter
 snt-vc01.snt.lab
ESXi 4台
 snt-esxi01.snt.lab
snt-esxi01.snt.lab
 snt-esxi01.snt.lab
 snt-esxi01.snt.lab
AD/DNS
 ad01snt.lab

ドメイン
 snt.lab

まず、構築済みのESXiにvCenterを仮想マシンとして構築しましょう。
ISOイメージからインストーラーを起動します。
通常と違うのはストレージ選択の部分なのでその部分だけ解説します。

ここで、選択肢を「ターゲットホストが含まれる新しいvSANクラスタにインストール」に切り替えます。

データセンタ名とクラスタ名を設定するとvCenterにそれぞれ作ってくれます。
今回vSAN ESAは無効にしています。

ディスクをキャパシティとキャッシュに振り分けます。
キャパシティに変えたいディスクを選択して、キャパシティの要求をクリックします。

キャッシュからキャパシティに変わりました。
容量が少ない場合は、シンディスクモードの有効化を忘れずにチェックしておいてください。

あとはネットワークの設定をしてインストールを実行します。

インストールが完了しました。

vSANのディスク管理を見てみると、ホストが1台だけでvSANが組まれていることがわかります。

データストアのサマリを見ると1台分のキャパシティディスクのサイズだとわかります。

ちなみにこの時点では、VMkernelにvSANの機能を持っていません。
シングルで他のホストと通信する必要がないので当たり前といえば当たり前ですが、なんか不思議ですね。

今回はここまでになります。
次回は、このvCenterにホストを追加して、現状の1ノードvSANにホストを追加するための準備を行いたいと思います。

2024年9月30日月曜日

Prometheus で kubernetes 上のリソースを監視してみる その3 Prometheus から Kubernetes のメトリクスを取得して Grafana で可視化してみる

前回、Prometheus と Grafana の構築を kubernetes 上で行ってくれる yaml を作成しました。
今回はこれに、Prometheus に監視対象となる Pod や Service の追加が行われた状態の yaml を作ってみます。
前回に引き続き今回も Chat-GPT さんに協力をしてもらいました。

Kubernetes のリソースについてメトリクスを取得するための作業を開始

前回作ったyamlをベースに追加していくことを考え、作成してもらったyamlにdefaultのnamespaceに展開されたPod、DeploymentあとServiceを監視するための情報をconfigmapに追加してほしいと依頼しました。

出てきたものをそのまま展開し、Pod、Deployment、Serviceを展開したのですが確認のクエリをPrometheusから実行しても何も表示されません。
そのため、何も表示されなかったことを伝えると、アノテーションを追加するように言われました。
ところがやはり何も表示されません。

何か足りてないんじゃないかなと漠然とですが思ったので、問題の解決をするために何から順番に調査したらいいかをおたずねしたところ以下の通りメトリクスエクスポーターについて確認するよう案内があり「あっ、エクスポーター展開してなかったわ」と気が付かされました。
メトリクスエクスポーターの展開と設定

なので、メトリクスエクスポーターの展開と情報収集するためのyamlをお願いしたところ、なぜかメトリクスエクスポーターと一緒にノードエクスポーターのyamlも作ってくれました…w
Kubernetes上の事だけにとらわれず、その土台であるノードもちゃんと確認するんだよというChat-GPTさんの優しさでしょうか。
気が利いていますね。

ところがどっこい。
頂いたものをそのまま使ってもうまくいかないのが、Chat-GPTさん。
いつでも我々の技術力と理解力のアップのため何かしらの罠を仕掛けてくるのです。

まず、Pod間の通信が行われていないというエラーがありました。
サービスの状態を確認したら、ServiceのClusterIPが割り当てられていなかったのでそこはServiceでtype: ClusterIPをちゃんと設定して解消されました。

一回、展開していたDeploymentやServiceなどを消してきれいにして再作成して状況を見ます。
こういう時、環境をきれいにしてやり直せるのがKubernetes上で検証を行うときの利点ですね。
ですが、だろうなとは思いつつやっぱりまだ何かが足りてない様子。

というわけで、kubectl logs でメトリクスエクスポーターを調査したところ、どうやらSAやRole、Rolebindingを設定していなかったのでprometheusがAPIでアクセスできなかったのが原因と考えられました。
成る程…権限ですか、必要な権限を一個一個足していくのが正しいのでしょうが今回は検証。
さっさと Grafana にたどり着きたい。

そこで私は考えました。
権限を全部与えちゃえばいいよね…と。
しかし、そのような行為はChat-GPTさんとしてはNG。
くっ…、ここまでお手伝いしてくれたChat-GPTさんの忠告を無視したくはない…。
ですが、問題の切り分けとして一旦すべての権限を与えて問題が解決するかどうか確認したいですとお伝えすると、それは良いアイデアだと思いますと賛同を得られました。
メトリクスエクスポーターが使うSAにすべての権限を与えるyamlを展開して、ついにPrometheusでクエリを実行して情報を得ることができたのです…長かった~。

Grafana で Kubernetes 上のリソースについて監視。

いよいよ、Grafanaでその情報を表示してみようと思います。
表示する内容としては、kuardを展開しているDeploymentのステータスを見てみようと思います。
見るステータスはreplicaがavailableかunavailableかについてを見るのがわかりやすいかなと思いやってみました。

まず、Prometheus の方でちゃんと情報が取得できているか実際にクエリを実行してみます。 実行するのは以下のDeploymentの状態について確認するコマンドです。
kube_deployment_status_replicas_available{deployment="kuard"}
kube_deployment_status_replicas_unavailable{deployment="kuard"}
ちゃんと実行結果が返ってきてくれました。(歓喜)

続いては、このクエリを使って Grafana でダッシュボードを作ってみます。

まず Grafana にログインします。
Data sources の追加は終わっているので、そのまま Dashboards をクリックしてCreate dashbprad をクリックします。

Add visualization をクリックします。
Select data source で追加済みの prometheus を選択します。
Metrics browser に kube_deployment_status_replicas_available{deployment="kuard"} を入力して『Run queries』をクリックします。
グラフが表示されました。
Deployment で定義している Replica の数が3つで3つとも正常に稼働していることがわかりますね。
何の情報を表示しているのかわかるようにパネルのタイトルを入力します。
右側の『Panel options』で『kuard_deployment_status_replicas_available』と入力して、上の方の『Save』をクリックします。
ダッシュボードのタイトルを入力します。
今回は『kuard-deployment』と入力して『save』をクリックします。
これでダッシュボードのは作成はできました。
続いてパネルをもう一つ追加しようと思います。
『Add』から『Visualization』をクリックします。
Metrics browser に kube_deployment_status_replicas_unavailable{deployment="kuard"} を入力して『Run queries』をクリックします。
グラフが表示されました。 このパネルは unavailable の状態がないか監視するメトリクスのため 0 となっていることが望ましいためOKですね。
こちらも、パネルの名前を右側の『Panel options』で『kuard_deployment_status_replicas_unavailable』と入力して、上の方の『Save』をクリックします。
『Save』を押して保存しましょう
改めて『Dashnords』を見てみると、作成した『kuard-deployment』が表示されています。
これをクリックすると内容が見れます。
パネルが縦に並んでいるので横に変えます。
パネルをクリック&ドロップで移動できるので『kuard_deployment_status_replicas_unavailable』横にずらします。
この状態でフロッピーディスクのマークをクリックします。
『Save』をクリックして保存します。
これで、Kubernetes 上のリソースについて Prometheus で情報を収集し Grafana を使用して可視化することができました。
Prometheus の yaml 作成や、メトリクスエクスポーターの設定などおそらく一人でやったら無理だったろうなぁと正直思います。
Chat-GPTさんの手助けがあってここまでこれたのは間違いありません。

自分自身で考えて物事を理解することはもちろん重要ですが、今回のように学習コストをChat-GPTさんに負担してもらって進めていく方法もそれはそれで自分では気が付かなかったことを気が付かされてそこから知識や経験が伸びていくことを感じましたので、どちらもバランスよくやっていけたらいいなと思いました。

今回で Prometheus と Grafana を使用したリソース管理は一旦終わりとなります。
読んでいただきありがとうございました。

2024年7月31日水曜日

Prometheus で kubernetes 上のリソースを監視してみる その2 Prometheus と Grafana の構築 + Prometheus の監視対象となる Pod や Service 等のリソースを追加した状態を構築できる yaml を作成する。

前回、Prometheus と Grafana の構築を kubernetes 上で行ってくれる yaml を作成しました。
今回はこれに、Prometheus に監視対象となる Pod や Service の追加が行われた状態の yaml を作ってみます。
前回に引き続き今回も Chat-GPT さんに協力をしてもらいました。

前回作ったyamlをベースに追加していくことを考え、作成してもらったyamlにdefaultのnamespaceに展開されたPod、DeploymentあとServiceを監視するための情報をconfigmapに追加してほしいと依頼しました。
しかし、出てきたものをそのまま展開し、Pod、Deployment、Serviceを展開したのですが何も表示されません。
そのため、何も表示されなかったことをChatGPTに伝えると、アノテーションを追加するように言われました。
(若干このとき、アレ? そんなの必要だったっけ? ラベルで拾うか拾わないかでよくない? と思ったりもしました。)

しかし、それを追加しても表示されなかったのでどうしたものかと調査したところ、どうやらSAやRole、Rolebindingを設定していなかったのでprometheusがAPIでアクセスできなかったのが原因だったようです。
ちょっと反則ですが、正しくPodの監視ができるyamlを自作成してそれと、今現在作成中のyamlを比較してもらい、何が問題だったのかを確認してもらいました。

こんな感じで足りなかった部分を分析してくれます。
以下は情報を元に足りてなかった部分の具体的な内容になります。

というわけでその辺の内容を含めたyamlを作成する作成してもらえるようお願いし、ようやくprometheusの展開に成功しました。
実際にPodを展開してみてみたいと思います。
展開直後は、まだPodが起動しきっていないので監視対象としてできますが、UNKNOWNです。
Podが起動するとUPと表示してくれました。
ちゃんと状態を監視できていますね。
続いてDeploymentやServiceも監視できないかチャレンジしてみたいと思います。
DeploymentとService を監視できるように修正を依頼したところ、comfigmapに以下を追加するように案内されました。
内容をyamlに加えて再展開すると、追加したDeploymentとServiceも監視対象として表示できました。
今回はここまでになります。
やはり、ChatGPTから欲しい回答を得るにはインプットが重要だと痛感しますね。
ただ、毎回毎回正しくインプットできるとは限りません。

うまくいかなかったときに、『やりたい事に対して何が足りていないのか』を上手にChatGPTに聞けるようにしていけるかがChatGPTを使いこなすカギではないかと思いました。
今回は以上になります。