Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Open Service Broker for Azure(OSBA)をつかう

366 views

Published on

Azure MySQLをAKSからデプロイ

Published in: Internet
  • Be the first to comment

Open Service Broker for Azure(OSBA)をつかう

  1. 1. Open Service Broker for Azure(OSBA)を使う ~Azure MySQLをAKSからデプロイ~ JAZUG 8周年総会 LT yoshimasa.katakura@yo_ta_n
  2. 2. 自己紹介 片倉 義昌(かたくら よしまさ) pnopで働いてます Azureコンサルティングとかしてます Microsoft MVP for Azure (2017~) 2 yoshimasa.katakura@yo_ta_n
  3. 3. Azure Kubernetes Service? 3
  4. 4. Azure Kubernetes Serviceを雑に紹介 略して “AKS” フルマネージドなKubernetes(k8s)環境をAzureで利用可能 利用者のAzureサブスクリプションには “ノード”と言われるい つも見慣れた仮想マシンが直接配置される。 料金はノードに対する仮想マシン、ネットワーク、ストレージ、 通信料金などで、k8sのクラスター管理に別料金は不要。 AzureのRBACと統合してIDとセキュリティ管理可能 Azureの他のサービスと同様にログの記録と監視も統合されて いる 4 Copyright© 2018, Y.Katakura All Rights Reserved. https://docs.microsoft.com/ja-jp/azure/aks/intro-kubernetes 文字多いんですけど
  5. 5. k8sから使えるAzureサービス 5
  6. 6. Azure Managed Disk & Azure Files 動的ストレージとして、Managed DiskのStandardとPremiumス トレージがいきなり利用可能 もちろんユーザが作成したManaged Diskをk8s内のコンテナか ら利用することも可能 Azure Fileを利用して複数Pod間でファイル共有も可能 6 Copyright© 2018, Y.Katakura All Rights Reserved. https://docs.microsoft.com/ja-jp/azure/aks/azure-disks-dynamic-pv https://docs.microsoft.com/ja-jp/azure/aks/azure-disk-volume https://docs.microsoft.com/ja-jp/azure/aks/azure-files-dynamic-pv https://docs.microsoft.com/ja-jp/azure/aks/azure-files-volume $ kubectl get storageclass NAME PROVISIONER AGE default (default) kubernetes.io/azure-disk 23h managed-premium kubernetes.io/azure-disk 23h ストレージの利用は できれば避けた設計 にしたいですね
  7. 7. Load Balancer/Internal Load Balancer k8sでLoadBalancerを作成すると、Azure Public IPアドレスを作成 してロードバランサーの自動構成をしてくれる。 Internal Load Balancerを作成すると、Azure Load Balancerを作成 して、他の仮想ネットワークやサブネットから通信可能になる 7 Copyright© 2018, Y.Katakura All Rights Reserved. https://docs.microsoft.com/ja-jp/azure/aks/internal-lb $ kubectl get service wp-external-lb NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE wp-external-lb LoadBalancer 10.0.57.7 40.115.181.XXX 80:30873/TCP 21h AKS以外のAzureサー ビスとの連携もバッ チリだね
  8. 8. Open Service Broker for Azure (OSBA)とは 8
  9. 9. Open Service Broker for Azure(OSBA) Open Service Broker API Azureなどの各種クラウドの外部サービス(SQL DB, Database for MySQLな ど)を、統一されたインタフェースでデプロイできるAPI仕様 Service Catalog このAPIを呼び出すためのサービスとしてk8s上で動作 Open Service Broker for Azure Azureの各種PaaSサービスをk8s上からデプロイするための仕組み 2018/09現在はSQL DB, Database for MySQL, Database for PostgreSQLが対応 将来的にはCosmos DB, Event Hubs, Key Vaultなどにも対応予定 9 Copyright© 2018, Y.Katakura All Rights Reserved. https://docs.microsoft.com/ja-jp/azure/aks/integrate-azure https://github.com/kubernetes-incubator/service-catalog https://github.com/Azure/open-service-broker-azure だから文字多 いってば
  10. 10. OSBAによるDatabase for MySQLのデプロイ 10 Copyright© 2018, Y.Katakura All Rights Reserved. AKS Service Catalog Open Service Broker for Azure Open Service Broker API $ kubectl apply –f mysql.yaml apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: wp-mysql spec: clusterServiceClassExternalName: azure-mysql-5-7 clusterServicePlanExternalName: basic parameters: location: japaneast resourceGroup: aksbase01-rg sslEnforcement: disabled firewallRules: - startIPAddress: "0.0.0.0" endIPAddress: "255.255.255.255" name: "AllowAll" sslEnforcementや firewallRulesの内容 が気になる……
  11. 11. デプロイされたDatabase for MySQLの情報参照 OSBAで作成されたMySQLの必要な パラメータはServiceBindingで Secretに変換できる Secret “mysql-secret” にOSBAが作成 したMySQLの各種情報が格納され る 11 Copyright© 2018, Y.Katakura All Rights Reserved. apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceBinding metadata: name: mysql-servicebinding spec: instanceRef: name: wp-mysql secretName: mysql-secret $ kubectl get secret mysql-secret -o yaml apiVersion: v1 data: database: eWhiZGQycHkwMg== host: ZDg0ZTU2ODgtZDJkNC00ODc4LWFiYmYtOGEzODk0ZjJ lNDcwLm15c3FsLmRhdGFiYXNlLmF6dXJlLmNvbQ== password: cDhRQWVYN0JQN2x6a1JXRQ== port: MzMwNg== sslRequired: ZmFsc2U= tags: WyJteXNxbCJd (以下略) Secret内の文字列は Base 64エンコードさ れているんだね
  12. 12. これでWordPressのデプロイもkubectlだけ でできちゃうぜ OSBAにてAzure Database for MySQL作成 Secretから参照するためのServiceBinding作成 Azure Managed Diskを動的ストレージで作成 LoadBalancerを作成(TCP/80を空ける) WordPressのDeploymentを作成 12 Copyright© 2018, Y.Katakura All Rights Reserved. $ kubectl apply –f mysql-ServiceInstance.yaml $ kubectl apply –f mysql-ServiceBinding.yaml $ kubectl apply –f wp-Storage.yaml $ kubectl apply –f wp-lb.yaml $ kubectl apply –f wp-Service.yaml 今回はシンプルに httpアクセスのみ で
  13. 13. 超簡単 13 Copyright© 2018, Y.Katakura All Rights Reserved. 「保護されていない通信」 ……か
  14. 14. 気づいたところ 今はまだSQL DB, MySQL, PostgreSQLしか対応してい ないが今後に期待 今回はMySQLを試したけど初期で作成したDB, User, Passwordから変更不可 よりセキュアな構成にするためのAzure Service Endpoint等を使うにはやはり直接Azureリソースを いじる必要がある 14 Copyright© 2018, Y.Katakura All Rights Reserved. ない機能は参加して自分達 で作ろう(
  15. 15. 参考資料 15 Copyright© 2018, Y.Katakura All Rights Reserved. MS公式ドキュメントによるOSBAのインストール方法 https://docs.microsoft.com/ja-jp/azure/aks/integrate-azure 今回の資料で使用したyamlファイル一式 https://github.com/katakura/osba-sample 要するにこのスライドだけ あればいいんだね
  16. 16. ご静聴ありがとうございました 16

×