サーバレス版KubernetesでNextCloudをAlibabaCloud上に構築する手順

2022年06月17日掲載

キービジュアル

はじめに

前編の記事「サーバレス版KubernetesでNextCloudによるAWS、AlibabaCloudのマルチクラウド運用を実現してみる※構築手順付き」で、NextCloudでマルチクラウド運用を実現する手順について紹介しましたが、本記事では、具体的なAlibaba Cloud ACK(Serverless Kubernetes :ASK)によるNextCloud構築手順を紹介します。

目次

ACK による NextCloud 構築手順

ここからはAlibaba Cloud ACK(Serverless Kubernetes :ASK)によるNextCloud構築手順を紹介します。注意として、事前にHTTPS用証明書を各自準備する必要があります。ここでHTTPS用証明書の準備方法等の説明は省略します。

STEP1: 証明書アップロード

Alibaba Cloudのコンソールにある、SSL Certificates から、HTTPS用証明書をアップロードします。

STEP2: VPC、VSwitch(ZoneA、ZoneB)作成

コンソールからVPC、VSwitchを作成します。
今回は次のようなパラメータ値にしています。

VPC名:k8s-nextcloud-vpc
CIDR:10.0.0.0/8

VSwitch名:k8s-nextcloud-vsw-a
Zone:A
CIDR:10.0.0.0/24

VSwitch名:k8s-nextcloud-vsw-b
Zone:B
CIDR:10.0.1.0/24

STEP3: ApsaraDB for MariaDB作成

ApsaraDB RDSのページへ遷移し、RDS購入から、ApsaraDB for MariaDBを新規作成します。
DBの情報は次の通りに設定しています。

◆DB
DB名: nextclouddb
文字コード:utf8

◆ユーザ
Username: nextclouduser
PW: <任意のパスワード>
アカウントタイプ:標準アカウント
データベース:nextclouddb

◆ホワイトリスト
10.0.0.0/8

STEP4: ASK(Serverless Kubernetes)でNextCloudをデプロイ

今度はコンソール画面から Container Service for Kubernetes (ACK)へページ遷移し、タブバーにある Serverless Kubernetes(ASK)を選定します。あとは図の通り、パラメータ設定しながらクラスター作成へ進みます。

 

diskも作成します。

 

永続ボリュームクレーム(PVC)を作成します。ここでの名前は「nextcloud-pv-claim」にしています。

 

以下YAMLソースコードをコピーしながらACKコンソール画面にて貼り付け、デプロイします。

YAMLソースコードは以下からコピーしてください。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    name: alb-nextcloud
    addressType: Internet
    zoneMappings:
    - vSwitchId: vsw-6we735r6gd2x9ycf64ior←先ほど作成したvSwitchID(ZoneA)を入れる必要があります-
    - vSwitchId: vsw-6wesjvmih2algpwqk4q70←先ほど作成したvSwitchID(ZoneB)を入れる必要があります-
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: default
---
apiVersion: v1
kind: Service
metadata:
  name: nextcloud
  labels:
    app: nextcloud

spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: nextcloud
    tier: frontend
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nextcloud
  labels:
    app: nextcloud
spec:
  selector:
    matchLabels:
      app: nextcloud
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nextcloud
        tier: frontend
    spec:
      containers:
      - image: nextcloud:latest
        name: nextcloud
        env:
        - name: MYSQL_HOST
          value: rm-0iw98dk216g95a1na52470.mariadb.japan.rds.aliyuncs.com:3306
        - name: MYSQL_PASSWORD
          valueFrom:
            secretKeyRef:
              name: dbuser-pass
              key: password1
        - name: MYSQL_USER
          value: nextclouduser
        - name: MySQL_DATABASE
          value: nextclouddb
        - name: OVERWRITEHOST
          value: k8s2nextcloud.sbcicp1.net
        - name: OVERWRITEPROTOCOL
          value: https
        ports:
        - containerPort: 80
          name: nextcloud
        volumeMounts:
        - name: nextcloud-ps
          mountPath: /var/www/html
      volumes:
      - name: nextcloud-ps
        persistentVolumeClaim:
          claimName: nextcloud-pv-claim
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nextcloudingress
  namespace: default
spec:
  ingressClassName: alb
  tls:
  - hosts:
    - k8s2nextcloud.sbcicp1.net
  rules:
    - host: k8s2nextcloud.sbcicp1.net
      http:
        paths:
          - backend:
              service:
                name: nextcloud
                port:  
                  number: 80
            path: /
            pathType: Prefix

STEP5: OSS作成

NextCloud専用のOSS bucketを作成します。

STEP6: OSSアクセス用RAMユーザ作成

上記、OSS(Object Storage Service)アクセス用のRAMユーザを作成します。RAMユーザを作成した場合、以下の画像の図であれば、次のような設定情報になります。

ユーザログイン名 k8s-nextcloud@5276025738593090.onaliyun.com
AccessKey ID xxxx
AccessKey Secret xxxx
 

STEP7: NextCloudにて外部ストレージとなるOSSをバインド

Container Service for Kubernetes (ACK)へページ遷移し、Serverless Kubernetes(ASK)が無事デプロイできたら、URLを取得して新規タブからNextCloudのページを開きます。
※URL取得方法は上記Demoにて説明しています

NextCloudのページが開いたら、ポートおよびホスト名を入力します。

 


外部ストレージにてOSSをバインドします。

 

エクスプローラーを利用して接続してみます。

これで、サーバレス版KubernetesによるNextCloudが実現できます。皆さまも構築する際、ご参考にいただければ幸いです。

関連サービス

Amazon Web Services (AWS)

ソフトバンクはAWS アドバンストティアサービスパートナーです

「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。

Microsoft Azure

Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。

Google Cloud

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

おすすめの記事

条件に該当するページがございません