Rancher2.0でAKSクラスタ作成からWordPressデプロイまで
Rancher2.0 を利用してAKSにkubernetesクラスタを作成、Rancherのカタログ機能からWordPressをデプロイしてみました。
Azure上でのAKSの操作は、ポータルではなくコマンドベースで行っています。
TL;DR
完全上位互換のスライドがあるので、こちらを読めば大丈夫です。
GUIベースで操作も簡単だと思います。
デプロイが終わった後に知り、先に読んでおけばよかったと後悔しました。
環境
Rancher Serverを事前に用意し、クラスタを構築できる状態にしておきます。
バージョンは Rancher2.0 v2.2.2 を使用しました。
Azure側の準備
Rancher を利用したクラスタ作成に必要な準備を行います。
リソースグループの作成
AKSクラスタ用のリソースグループを作成します。
名前はrancher-aks-sample
にしました。
$ az group create -l japaneast -n rancher-aks-sample
サービスプリンシパルの作成
リソースグループを操作するためのサービスプリンシパルを作成します。
表示されるappId
などの情報は、Rancher でクラスタを作成する際に必要になります。
$ az ad sp create-for-rbac --skip-assignment -n sp-aks-sample
appId: 03f94503-xxxx-xxxx-xxxx-xxxxxxxxxxxx
displayName: sp-aks-sample
name: http://sp-aks-sample
password: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
tenant: 2bdec7af-xxxx-xxxx-xxxx-xxxxxxxxxxxx
// ロールの割り当て
$ az role assignment create --assignee 03f94503-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--role Contributor --resource-group rancher-aks-sample
リソースプロバイダの登録
これがないとクラスタ作成時にエラーが発生します。
トラブルシューティングを参考にしました。
$ az provider register -n Microsoft.OperationalInsights
$ az provider register -n Microsoft.OperationsManagement
AKSクラスタの作成
Rancher ポータル上でAKSクラスタを作成します。
Add Cluster でAzure AKS
を選択。
Azureとのアクセスに必要な情報を設定します。
Client IDはサービスプリンシパルのappId、Client secretはパスワードの値を設定します。
実行するとクラスタが作成されます。
しかし未対応の問題があり、Control ManagerとSchedulerが正常な状態になっていません。
とりあえずアプリケーションのデプロイに問題はないようです。
AKSのIssue
RancherのIssue
WordPress のデプロイ
Catalog を使用してデプロイを行います。
(一部画像の対象クラスタが異なりますが、AKSクラスタに読み替えてください)
カタログからデプロイ
カタログで WordPress を選択します。
L7 LoadBalancer の作成をOFFにし、パスワードを設定して実行します。
LoadBalancer をデプロイ
AKS用の L7 LoadBalancer は Rancher がサポートしていないため、Azure上で作成する必要があります。
Azure CloudShell を起動し、Helmを有効にします。
// Tiller のサービスアカウントを作成
$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
// Helm の初期化
$ helm init
Helm を使用して Ingress Controller を作成します。
$ helm install stable/nginx-ingress
WordPress 用の Ingress を以下のマニフェストファイルから作成します。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wordpress-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: wordpress-wordpress
servicePort: 80
$ kubectl apply -f wordpress-ingress.yaml
これで LoadBalancer の公開IPから WordPress にアクセスできるようになりました。
参考
マルチクラウド時代の最強コンビ RancherによるKubernetes活用ガイド
Rancher 2.x 公式ドキュメント
Rancher2.0 v2.0.0でGKEにkubernetesクラスタ構築からWordPressデプロイまで
Author And Source
この問題について(Rancher2.0でAKSクラスタ作成からWordPressデプロイまで), 我々は、より多くの情報をここで見つけました https://qiita.com/kyohmizu/items/bfe1763b4cefa69718cf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .