Azure Container

誰でも簡単!AzureでKubernetesを始めよう

2019/01/15

ゴール

Azure Kubernetes Service(以下AKS)でNginxを動かして、Azure FilesをコンテナにマウントしコンテンツをAzure Filesに置く

前提

Azureアカウントを持ってること
kubernetesについてなんとなく知っていること
kubectlがクライアントPCにインストールされていること
クライアントPCはMac

azure-cliのインストール

下記のページを参考にazure-cliのインストールをしてください。

MacOSにazure-cliをインストールして補完する
MacにAzure-cliをインストールする必要が出てきたので、メモ。 デフォルトではタブ補完が効かないので、タブ保管させるまでがゴー...

やっていく

AzureKuberneetsServiceでNginxを動かす

変数

azure-cliでいろいろ作っていく前に変数の準備をします。

リソースグループの作成

まずはAKS,ACR用に新しくリソースグループを作成します。

AKS Clusterの作成

nodeを1つでサイズはStandard_A1で作成しています。
AKSClusterはお金かからないのでnodeのVMの料金だけ。のはず。。。

kube/configの取得

Azure Container Registry(ACR)の作成

ACRは、Dockerコンテナーイメージ用のAzureのプライベート レジストリです。ACRにpushされたコンテナイメージからk8sのpod,replicasetを作成します。

ACRにログイン

作成したACRにログインします。

ACRのLoginServer情報を取得

クライアントPCからkubectlでAKSを操作するために".kube/config"を取得します。
既に".kube/config"ファイルが存在している場合上書きされます。

ACRにdocker imageをpush

ACRにNginxのカスタムDockerイメージをpushします。pushするイメージは"nginx:1.0"とします。
まずはnginx:1.0イメージにtagを付与します。

tagを付与したらACRにpushします。

ACRのイメージの確認

pushされたかどうかの確認。

pushしたNginxイメージの確認

pushしたNginxイメージのtagを確認

ACR認証の構成

AKSとACRとの間で認証が構成されている必要があります。 その際、ACRからイメージをpullするための適切な権限を AKSのIDに付与します。
まず、AKS に対して構成されているサービス プリンシパルの IDとACRのリソースIDを取得します。
その後、適切なアクセス権を付与するロールを作成します。

Nginxのデプロイ

manufest.yamlファイルを実行するとnginxのreplicasetとserviceが作成されます。
※imagesが"$AKSCLuster_Name/nginx:1.0"となっていますが、ここは変数は使えないです。

k8sへのデプロイ進行状況を確認

EXTERNAL-IPがpendingからIPに変わればデプロイ完了です。
表示されたEXTERNAL-IPにアクセスしてNginxのトップページが表示されたらOKです。

AzureFiles

AzureFilesをPodからマウントします

ストレージ アカウントの作成

まずはAzureFiles用のStorageAccountを作成します。
作成するResourceGroupは下記のコマンドで取得する必要があります。

ストレージクラスの作成

ストレージ クラスを使用して、Azureファイル共有を作成する方法を定義します。 クラス内に特定のストレージアカウントを指定できます。

永続ボリューム要求(PVC)の作成

PVCは、ストレージ クラス オブジェクトを使用して、Azureファイル共有を動的にプロビジョニングします。
Create_PVC_AzureFiles.yamlを実行すると、サイズが5GBでReadWriteManyアクセスの永続ボリューム要求を作成できます。
accessModesは複数ありますが、ReplicaSetから使用するのでReadWriteManyにします。

デプロイ

イメージはACRにpushしたカスタムNginxを使用し、Nginxのデフォルトドキュメントルート("/usr/share/nginx/html")をAzureファイルにマウントします。

index.htmlの設置

AzurePortalにアクセスして、作成したStorageAccountのFilesにindex.htmlファイルを置きます。

ServiceのEXTERNAL-IPの確認

EXTERNAL-IPにアクセスして"Hello kubernetes!"が表示されれば完了です!

-Azure, Container
-, , ,

Translate »