AKSクラスタとデモアプリケーションがAzureにどのように展開されたのか確認 / AKSの基礎を理解するシリーズ Part. 5

この記事の内容 AKSクラスターを展開すると、Azureのバックエンドにどのようなリソースが自動作成されるかを解説します 仮想ネットワーク、サブネット、Virtual Machine Scale Set(VMSS)の構成を確認します ロードバランサーとパブリックIPアドレスを介した外部アクセスの仕組みを解説します NSG(ネットワークセキュリティグループ)とルートテーブルの役割を確認します AzureポータルでAKSのインフラストラクチャリソースグループを実際に見ながら理解を深めます AKSクラスター展開時のAzureリソース全体像 AKSクラスターをデプロイすると、Azureのバックエンド側にさまざまなリソースが自動的に作成されます。展開された構成を確認する前に、まずAzure基盤側でどのようなサービスが作られているかを見ていきましょう。 全体の構成は以下のようになっています。 Azureの仮想ネットワークが作成されます その中にサブネットが作られます AKSはクラスターのためスケールアウトできるように、**Virtual Machine Scale Set(VMSS)**が作成されます。ノード数は設定に応じて増減します VMSSのインスタンスがサブネットに接続されます 外部からアプリケーションにアクセスできるようにロードバランサーとパブリックIPアドレスが作成されます 通信を制御するためにNSG(ネットワークセキュリティグループ)とルートテーブルがサブネットに紐付けられます インフラストラクチャリソースグループの確認 AzureポータルでAKSのサービス(Kubernetesサービス)を開き、プロパティを見てみると「インフラストラクチャリソースグループ」という項目があります。 このリソースグループが、AKSクラスターを実際に動かしているAzureのサービス群が格納されている場所です。中には以下のようなリソースが含まれています。 Virtual Machine Scale Set(VMSS) 仮想ネットワーク NSG・ルートテーブル マネージドID パブリックIPアドレス ロードバランサー これらすべてが連携して、AKSクラスターを動作させています。 仮想ネットワークとサブネットの構成 仮想ネットワークのアドレス空間は以下のように設定されています。 仮 サ 想 ブ ネ ネ ッ ッ ト ト ワ ( ー A ク K : S 1 s 0 u . b 2 n 2 e 4 t . ) 0 : . 0 1 / 0 1 . 2 2 2 4 . 0 . 0 / 1 6 サブネットの「接続デバイス」を確認すると、VMSSのインスタンスが2台接続されていることが確認できます。 ...

July 21, 2023 · 2 min · 胡田昌彦

AKSクラスタへのデモアプリケーションの展開 / AKSの基礎を理解するシリーズ Part. 4

AKSクラスタへのデモアプリケーションの展開 — AKSの基礎を理解するシリーズ Part. 4 この記事の内容 Azure Cloud Shellを使ってGitHubからサンプルコードをクローンする手順を紹介します kubectl create -f コマンドを使い、YAMLファイルからKubernetesリソースを一括展開する方法を解説します kubectl get pods や --watch オプションを使ったPod状態の確認方法を説明します LoadBalancerサービスで発行された外部IPを使ってアプリにアクセスする流れを確認します デモアプリとして投票アプリ(Azure Voting App)を動作確認し、フロントとバックの2層構成を体験します GitHubからサンプルコードをクローンする Cloud Shellを開いたら、まずGitHubに用意されているハンズオン用リポジトリをクローンします。 git clone https://github.com/MicrosoftPublishing/HandsOnKubernetesOnAzure クローンが完了したら、デモアプリケーションの定義ファイルが格納されているディレクトリへ移動します。 cd HandsOnKubernetesOnAzure/chapter02 このディレクトリの中に azure.yaml というファイルがあります。このYAMLファイルにアプリケーションのリソース定義が記述されています。 YAMLファイルの中身を確認する(任意) 中身が気になる方は、Cloud Shellのエディタで確認できます。 code azure.yaml コマンドを実行するとエディタが立ち上がり、Kubernetesリソースの定義を参照できます。確認が終わったら、変更を保存せずにエディタを閉じてください。 アプリケーションを展開する では、実際にアプリケーションをAKSクラスタへ展開します。kubectl create コマンドに -f オプションでYAMLファイルを指定するだけです。 kubectl create -f azure.yaml このコマンドを実行すると、YAMLファイルに定義された以下の4つのリソースがまとめて作成されます。 リソース種別 名前 Deployment apps-azure-vote-back Service apps-azure-vote-back Deployment apps-azure-vote-front Service apps-azure-vote-front フロントエンドとバックエンドが連携する2層構成のアプリケーションです。 Podの稼働状態を確認する アプリを展開したら、Podが正常に動いているか確認しましょう。 kubectl get pods azure-vote-front と azure-vote-back の2つのPodが表示され、STATUS が Running になっていれば正常です。 ...

July 19, 2023 · 2 min · 胡田昌彦

AKSクラスタへのCloudShellからの接続 / AKSの基礎を理解するシリーズ Part. 3

AKSクラスタへのCloudShellからの接続 / AKSの基礎を理解するシリーズ Part. 3 この記事の内容 Azure Cloud ShellからAKS(Azure Kubernetes Service)クラスタに接続する方法を解説します Cloud Shellを初めて使う場合はストレージアカウントのマウントが必要です az aks get-credentials コマンドでクレデンシャルを取得します 取得したクレデンシャルは ~/.kube/config にカレントコンテキストとして保存されます kubectl get nodes コマンドでノードの一覧を取得し、接続を確認します Azure Cloud Shellを開く AzureポータルのAKSクラスタにCloud Shellから接続するには、まずAzure管理ポータル上部にあるCloud Shellのアイコンをクリックします。 Cloud Shellを初めて利用する場合は、ストレージのマウントが必要です。画面の指示に従ってストレージアカウントを作成してください。すでにCloud Shellを使ったことがある方は、そのまま利用できます。 ストレージの準備ができると、Bashのシェルが立ち上がります。 クレデンシャルの取得 Cloud ShellからAKSクラスタを操作するには、まずクレデンシャルを取得する必要があります。az aks get-credentials コマンドを使い、対象クラスタのリソースグループ名とクラスタ名を指定して実行します。 az aks get-credentials --resource-group RGHandsOnAKS --name HandsOnAKS このコマンドを実行すると、~/.kube/config にAKSクラスタのクレデンシャルがカレントコンテキストとして保存されます。これにより、kubectl コマンドでAKSクラスタを操作できる状態になります。 ノードの確認 クレデンシャルの取得が完了したら、kubectl get nodes コマンドを実行してクラスタのノード一覧を取得します。 kubectl get nodes 正しく接続できていれば、ノードの一覧が表示されます。これでCloud ShellからKubernetesクラスタへの接続が確認できました。 まとめ AzureポータルのCloud ShellからAKSクラスタに接続するには、以下の手順で行います。 Azure管理ポータル上部のCloud Shellアイコンをクリックし、Bashを起動する 初回利用時はストレージアカウントを作成してマウントする az aks get-credentials コマンドでリソースグループ名とクラスタ名を指定してクレデンシャルを取得する kubectl get nodes コマンドでノードの一覧を取得し、接続を確認する Cloud Shellはブラウザから直接利用できるため、ローカル環境へのツールインストールが不要です。AKSクラスタへのアクセスをすぐに試したい場合に非常に便利な方法です。 ...

July 18, 2023 · 1 min · 胡田昌彦

AKSクラスタ確認 / AKSの基礎を理解するシリーズ Part. 12

AKSクラスターの基本的な確認方法 — AKSの基礎を理解するシリーズ Part. 12 この記事の内容 Azureポータルから作成済みAKSクラスターへのアクセス方法 クラスター概要ページで確認できる基本情報(APIサーバーアドレスなど) ノードプールの設定内容と実行可能な操作 クラスター構成における認証・認可の選択肢 Azure Monitorとの連携による監視機能の概要 Azureポータルでクラスターを確認する AKSクラスターを作成したら、まずポータルからその内容を確認してみましょう。 作成完了後に表示される画面で「リソースに移動」ボタンをクリックすると、作成したクラスターのページに直接移動できます。あるいは、ポータルの検索バーで「AKS」と入力してサービス一覧に移動し、作成したクラスターを選択する方法でも同じページに到達できます。 クラスターの概要ページ クラスターのトップページでは、以下のような基本情報を確認できます。 クラスターの名前 APIサーバーのアドレス その他の基本的なステータス情報 APIサーバーのアドレスが表示されているため、「このクラスターのAPIはここにある」ということが一目でわかります。 また、「Kubernetesリソース」のセクションでは、クラスター内で動作しているリソースを確認することができます。実際にアプリケーションをデプロイする際などに活用するセクションですが、その詳細は後続の回で扱います。 ノードプールの確認と操作 「設定」メニューの中にある「ノードプール」では、作成したノードプールに関する詳細情報を確認できます。 項目 内容 稼働状況 現在のノードプールの状態 Kubernetesのバージョン 使用しているk8sのバージョン ノードのサイズ VMのサイズ オペレーティングシステム 使用しているOS ノードプールを選択すると、以下の操作も実行できます。 Kubernetesのアップグレード ノードイメージの更新 ノードプールのスケーリング なお、AKSのノードは内部的にはVirtual Machine Scale Set(VMSS)によって管理されており、その詳細もポータルから確認できるようになっています。 クラスター構成の設定 「クラスター構成」では、以下のような項目を設定できます。 Kubernetesのバージョン AKSの価格レベル 認証・認可の設定 Azureらしい特徴のひとつが、認証・認可の柔軟な設定です。 既定では、Kubernetes RBACを使用したローカルアカウントが選択されていますが、以下のような選択肢も簡単に切り替えることができます。 Azure AD認証のみ使用する Azure ADをRBACも含めてすべてに使用する Microsoft Entra ID(旧Azure AD)との統合がポータルから手軽に選択できる点は、Azureならではの利便性です。 監視(Azure Monitor連携) 「監視」のセクションでは、Azure Monitorと連携したクラスターの監視設定が行えます。 「分析情報」をクリックするだけで監視を構成し、クラスターの状態をダッシュボードで分析できるようになります。この機能についても後の回で詳しく扱います。 まとめ 本記事では、作成済みのAKSクラスターをAzureポータルで確認する基本的な方法を紹介しました。 ポータルの「リソースに移動」または検索からクラスターページに移動できます 概要ページではAPIサーバーアドレスなどの基本情報を確認できます ノードプールではバージョンやVMサイズの確認、スケーリングなどの操作が可能です クラスター構成では認証方式としてAzure AD統合を簡単に選択できます 監視はAzure Monitorとの連携で設定できます まずはどのようなメニューがあるかをひと通り眺めておくと、後の操作をスムーズに進めることができます。 ...

July 17, 2023 · 1 min · 胡田昌彦

【Azure初心者向け】仮想マシン編その3 仮想マシンの作成 / Azureのサービスを理解するシリーズ【2023年2月】

Azure仮想マシンの管理機能を徹底解説——ポータルから使える機能を総まとめ この記事の内容 Azure仮想マシン(VM)のポータルメニューに用意されている管理機能を網羅的に紹介します 接続方法(RDP/SSH/Bastion)から監視・自動化・トラブルシューティングまで幅広く解説します Just-In-TimeアクセスやManaged Identityなどのセキュリティ機能についても触れています 各機能の概要と、より詳細な理解が必要な場合にどこを深掘りすべきかがわかります 2023年2月時点のAzureポータルの状態をベースにしています 接続方法の選択肢 仮想マシンへの接続方法は複数用意されています。 RDP / SSH 最も基本的な接続方法です。ただし、インターネット経由でRDP接続を行う場合はパブリックIPアドレスが必要になります。セキュリティ上の観点からパブリックIPを持たせたくない場合は、後述のBastionが選択肢になります。 Azure Bastion BastionはパブリックIPアドレスを持たせることなく、ブラウザベースで仮想マシンに接続できるサービスです。 仮想ネットワーク経由のプライベート接続(VPN/ExpressRoute)は高コストになる場合がある Bastionを使えば、パブリックIPもプライベートネットワーク接続も不要 ネットワーク的には繋がっていないが画面だけ見えるという構成を実現できる セキュリティに配慮した環境での接続手段として有効です。なお、Bastionは別途デプロイが必要で、利用料金が発生します。 DNS名の設定 仮想マシンに割り当てたパブリックIPアドレスに対して、DNS名ラベルを付与することができます。 Azureが用意しているドメイン(例:ebisuda-vm.japaneast.cloudapp.azure.com)に対してラベルを設定すると、IPアドレスの代わりにDNS名でアクセスできるようになります。独自ドメインを使いたい場合は、CNameレコードやAレコードを別途設定する方法もあります。この機能はパブリックIPアドレスリソース側の機能となっています。 可用性とスケーリング 可用性セットや仮想マシンスケールセット(VMSS)を使った高可用性構成やスケーリングについても、ポータルから設定可能です。内容が広範なため、詳細は別途確認することをお勧めします。 アクティビティログ 仮想マシンに対してどのような操作が行われたかを確認できます。VMの内部ログではなく、AzureポータルやAzure APIを通じて行われた操作の履歴が記録されています。 仮想マシン作成時にAzureが自動で行った処理(例:ゲスト構成)も記録される 誰がいつ何をしたかを追跡できる Log Analyticsと連携して一元管理することも可能 タグの管理 ポータルのタグメニューから、仮想マシンに対してタグの追加・変更・削除ができます。コスト管理や環境区分(本番・開発など)の識別に活用できます。 問題の診断と解決 トラブルシューティングのためのナレッジベースが用意されています。 いつメンテナンスがあるかの確認 VMに接続できない場合の対処方法 パフォーマンス問題のガイダンス パスワードリセットやシリアルコンソールへのアクセスといったツール 困ったときにまずここを参照すると、解決の手がかりが得られる場合があります。 ディスクの管理 仮想マシンにはOSディスクとデータディスクが存在します。 OSディスク:基本的に1つ。変更は可能ですが操作に注意が必要です データディスク:新規作成して追加できます。複数接続可能です サイズ変更:VMを停止(再起動)することでサイズを変更できます。クラウドならではの柔軟性を活用し、負荷に応じて動的にサイズを調整することが可能です セキュリティ関連機能 Microsoft Defender for Cloud セキュリティ対策を強化するための大規模なサービスです。仮想マシンのセキュリティ推奨事項の確認や脅威の検出に利用できます。 Azure Advisor の推奨事項 Azureが仮想マシンに対する推奨事項を自動で提示してくれます。コストの最適化や可用性の向上といった観点からのアドバイスが表示されます。 Just-In-Time VMアクセス 通常の管理では、管理者がいつでもVMにアクセスできる状態が続きます。Just-In-Timeアクセスを使うと、必要な時間帯だけアクセスを許可し、作業終了後はアクセスを閉じることができます。 ネットワークやアクセス制御の観点でより安全な運用が実現できる 設定はポータルの「構成」メニューから行える 拡張機能とアプリケーション 仮想マシンに拡張機能を追加することができます。例えば、Windows Admin Centerをインストールする際にも拡張機能が使われます。自動化スクリプトの実行やツールの展開など、様々な用途に活用できます。 Windows Admin Center 仮想マシンの管理に使えるWebベースのツールです。拡張機能としてインストールすることで、AzureポータルからWindows Admin Centerを介してVMを管理できるようになります。ただし、接続には適切なネットワーク設定(ポートの開放など)が必要です。 ...

March 27, 2023 · 1 min · 胡田昌彦

【Azure初心者向け】仮想マシン編その2 仮想マシンの作成 / Azureのサービスを理解するシリーズ【2023年2月】

【Azure初心者向け】仮想マシンを作ったときに何ができるのか?リソースの関係性を徹底解説 この記事の内容 Azure仮想マシンを作成すると、VMだけでなく複数のリソースが自動的に作成されます ネットワークインターフェース(NIC)が仮想マシンとネットワーク関連リソースをつなぐ中核の役割を担います 仮想ネットワーク(VNet)・サブネット・パブリックIPアドレス・ネットワークセキュリティグループ(NSG)の関係性を図解します NSGのインバウンド規則を使って、RDP接続を特定のIPアドレスのみに制限する設定方法を紹介します 仮想マシンOS側からのネットワーク構成の見え方についても解説します 仮想マシンを作成すると何ができるのか Azure仮想マシンを作成すると、VMそのものだけでなく、リソースグループの中に多くのリソースが一緒に作成されます。「なぜこんなにいっぱいあるの?」と思われる方も多いかと思いますが、それぞれには明確な役割があり、互いに紐付いています。 主に作成されるリソースは以下のとおりです。 仮想マシン(VM) ネットワークインターフェース(NIC) 仮想ネットワーク(VNet) サブネット パブリックIPアドレス ネットワークセキュリティグループ(NSG) OSディスク・データディスク ストレージアカウント(診断設定用) それぞれの関係性を順番に見ていきましょう。 仮想マシンとネットワークインターフェース(NIC) 仮想マシンは、ネットワークインターフェース(NIC) と直接紐付いています。NICはパソコンに刺さるネットワークインターフェースカードと同じ概念で、Azureでは独立したリソースとして管理されています。 仮想マシンの概要ページを見ると、「ネットワーク」の欄にNICの名前が表示されており、クリックするとNICのリソース画面に遷移できます。 NICはいわば「ネットワーク接続の中核」であり、以下のものと紐付いています。 プライベートIPアドレス(仮想ネットワーク内のアドレス) パブリックIPアドレス(インターネット側のアドレス) ネットワークセキュリティグループ(NSG) 仮想ネットワーク(VNet)とサブネット 仮想ネットワークは、Azure上にプライベートなネットワーク空間を構成するリソースです。VNetにはアドレス空間が設定されており、例えば 10.1.0.0/16 というように定義されています。 VNetの中にはサブネットが定義されます。デフォルトでは「default」という名前のサブネットが1つ作成され、例えば 10.1.0.0/24 のようなアドレス範囲を持っています。 NICはこのサブネットに接続しており、VMが持つプライベートIPアドレス(例: 10.1.0.4)は、このサブネットの範囲内のアドレスが割り当てられます。 関係性をまとめると次のようになります。 V M → N I C → サ ブ ネ ッ ト → V N e t VMが直接VNetの中にいるのではなく、NICを経由してサブネットに足を出しているというイメージです。 パブリックIPアドレス パブリックIPアドレスも独立したリソースとして作成されます。これはAzureが管理するグローバルIPアドレスの中から1つ割り当てられたものです。 パブリックIPアドレスはNICに紐付いており、インターネットからのアクセスはこのIPアドレスを経由してNICへ届きます。 ここで重要なのは、VNet内のプライベートIPとパブリックIPの変換(NAT)はAzureのネットワーク基盤が自動的に行っているという点です。仮想マシン(OS)側から見えるのはプライベートIPアドレス(例: 10.1.0.4)だけであり、パブリックIPアドレスはOS側からは直接認識されていません。 ネットワークセキュリティグループ(NSG) NSGはファイアウォールに相当するリソースです。受信(インバウンド)と送信(アウトバウンド)のセキュリティ規則を定義でき、NICまたはサブネットに紐付けることができます。 デフォルトで設定されている受信規則 規則名 説明 AllowVnetInBound VNet内からの通信をすべて許可 AllowAzureLoadBalancerInBound Azureロードバランサーからの通信を許可 DenyAllInBound 上記以外のすべての受信トラフィックを拒否 デフォルトで設定されている送信規則 規則名 説明 AllowVnetOutBound VNet内への送信をすべて許可 AllowInternetOutBound インターネットへの送信をすべて許可 DenyAllOutBound 上記以外のすべての送信トラフィックを拒否 VM作成時に追加したRDPの規則は、TCPポート3389番の受信をソース「Any(任意)」で許可するものです。 ...

March 20, 2023 · 2 min · 胡田昌彦