ラベル NFS の投稿を表示しています。 すべての投稿を表示
ラベル NFS の投稿を表示しています。 すべての投稿を表示

2022年2月10日木曜日

MinikubeでNFS上の永続ボリュームを使用するPostgreSQL14をデプロイする

MinikubeでNFS上の永続ボリュームを使用するPostgreSQL14をデプロイするには、以下の手順を実行します。

実行手順

1. PostgreSQLデータ格納用ディレクトリを作成
NFSサーバ上でPostgreSQLデータ格納用ディレクトリを作成します。パスは適宜変更してください。
sudo mkdir -p /shared_dir/pgdata

sudo chown 70:70 /shared_dir/pgdata

2. NFS上に永続ボリュームを作成
以下のコマンドでNFS上に永続ボリュームを作成します。
cat << EOF > nfs-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  nfs:
    server: ※NFSサーバのIPアドレス
    path: "/shared_dir/pgdata"
  mountOptions:
    - nfsvers=4.2
EOF

kubectl apply -f ./nfs-pg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > nfs-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ""
  resources:
    requests:
      storage: 5Gi
  volumeName: nfs-pg-pv
EOF

kubectl apply -f ./nfs-pg-pvc.yml

4. Deploymentの作成
以下のコマンドでPostgreSQLのイメージと作成したNFS上の永続ボリュームを使用するDeploymentを作成します。
cat << EOF > pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pg-deployment
  labels:
    app: mypg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mypg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mypg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_PASSWORD
          value: "mypostgres"
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: nfs-pg-pvc
EOF

kubectl apply -f ./pg-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > pg-service.yml
apiVersion: v1
kind: Service
metadata:
  name: pg-service
spec:
  selector:
    app: mypg
  ports:
  - protocol: TCP
    port: 5432
    targetPort: 5432
EOF

kubectl apply -f ./pg-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/pg-service 5432:5432

※接続確認
psql -h ※MinikubeをインストールしたホストのIP -U postgres -W postgres

※PostgreSQLのクライアントは以下のコマンドでインストールできます。
sudo apt-get -y install postgresql-client

関連情報

Ubuntu 20.04にNFSサーバをインストールする

2022年2月9日水曜日

Microk8sでNFS上の永続ストレージを使用するApache Httpdをデプロイする

Microk8sでNFS上の永続ストレージを使用するApache Httpdをデプロイするには、以下の手順を実行します。

実行手順

1. テスト用ページの作成
NFSサーバーのホストにテスト用ページを作成します。
sudo mkdir -p /shared_dir/html

echo '<html><head><title>sample</title></head><body>contents on NFS server.</body></html>' | sudo tee /shared_dir/html/index.html

2.永続ボリュームの作成
以下のコマンドで、NFSサーバ上の永続ストレージを作成します。
cat << EOF > nfs-httpd-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-httpd-pv
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadOnlyMany
  storageClassName: slow
  nfs:
    server: ※NFSサーバのIPアドレス
    path: "/shared_dir/html" ※NFSサーバのパス
  mountOptions:
    - nfsvers=4.2
EOF

microk8s kubectl apply -f ./nfs-httpd-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで、永続ストレージ要求を作成します。
cat << EOF > nfs-httpd-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-httpd-pvc
spec:
  accessModes:
    - ReadOnlyMany
  storageClassName: slow
  resources:
    requests:
      storage: 2Gi
  volumeName: nfs-httpd-pv
EOF

microk8s kubectl apply -f ./nfs-httpd-pvc.yml

4. Deploymentの作成
以下のコマンドでhttpd:2.4-alipineのイメージと作成したNFS上の永続ボリュームを使用するDeploymentを作成します。
cat << EOF > httpd-nfs-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-deployment
  labels:
    app: myhttpd
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myhttpd
  template:
    metadata:
      labels:
        app: myhttpd
    spec:
      containers:
      - name: myhttpd
        image: httpd:2.4-alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - name: documentroot
          mountPath: /usr/local/apache2/htdocs
      volumes:
      - name: documentroot
        persistentVolumeClaim:
          claimName: nfs-httpd-pvc
EOF

microk8s kubectl apply -f ./httpd-nfs-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > httpd-service.yml
apiVersion: v1
kind: Service
metadata:
  name: httpd-service
spec:
  selector:
    app: myhttpd
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80
EOF

microk8s kubectl apply -f ./httpd-service.yml

ブラウザからhttp://<ホスト名:8080/ にアクセスします

MinikubeとHelmでNFS上の永続ボリュームを使用するPostgreSQLをデプロイする

MinikubeとHelmでNFS上の永続ボリュームを使用するPostgreSQLをデプロイするには、以下の手順を実行します。

実行手順

1. PostgreSQLデータ格納用ディレクトリを作成
NFSサーバ上でPostgreSQLデータ格納用ディレクトリを作成します。パスは適宜変更してください。
sudo mkdir -p /shared_dir/pgdata

sudo chown 1001:1001 /shared_dir/pgdata

2. NFS上に永続ボリュームを作成
以下のコマンドでNFS上に永続ボリュームを作成します。
cat << EOF ≶ nfs-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  nfs:
    server: ※NFSサーバのIPアドレス
    path: "/shared_dir/pgdata" ※共有ディレクトリ。パスは適宜変更してください。
  mountOptions:
    - nfsvers=4.2
EOF

kubectl apply -f ./nfs-pg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF ≶ nfs-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ""
  resources:
    requests:
      storage: 5Gi
  volumeName: nfs-pg-pv
EOF

kubectl apply -f ./nfs-pg-pvc.yml

4. HelmでPostgreSQLのインストール
以下のコマンドで、Helmを使用してPostgreSQLをインストールします。
helm repo update

helm install my-pg bitnami/postgresql --set persistence.existingClaimm=nfs-pg-pvc --set postgresqlPassword=mypg

パラメータについては、以下を指定します。
persistence.existingClaim: 永続ボリューム要求の名称
postgresqlPassword: postgresユーザのパスワード

他のパラメータについては、以下を参照してください
https://github.com/bitnami/charts/tree/master/bitnami/postgresql

※アンインストールする場合は、以下のコマンドを実行します。
helm uninstall my-pg

5. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/my-pg-postgresql 5432:5432

※接続確認
psql -h ※MinikubeをインストールしたホストのIP -U postgres -W postgres

※PostgreSQLのクライアントは以下のコマンドでインストールできます。
sudo apt-get -y install postgresql-client

関連情報

Ubuntu 20.04にNFSサーバをインストールする

2022年2月2日水曜日

MinikubeとHelmで、NFS上の永続ボリュームを使用するMariaDBをデプロイする

MinikubeとHelmで、NFS上の永続ボリュームを使用するMariaDBをデプロイするには、以下の手順を実行します。

実行手順

1. MariaDBデータ格納用ディレクトリを作成
NFSサーバでMariaDBデータ格納用ディレクトリを作成します。
sudo mkdir -p /shared_dir/mariadb

sudo chown 1001:1001 /shared_dir/mariadb

2. NFS上の永続ボリュームの作成
以下のコマンドでNFS上の永続ボリュームを作成します。
cat << EOF > nfs-mariadb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-mariadb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: ※NFSサーバのIPアドレス
    path: "/shared_dir/mariadb" ※NFSサーバのパス
  mountOptions:
    - nfsvers=4.2
EOF

kubectl apply -f ./nfs-mariadb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで、永続ストレージ要求を作成します。
cat << EOF > nfs-mariadb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-mariadb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ""
  resources:
    requests:
      storage: 5Gi
  volumeName: nfs-mariadb-pv
EOF

kubectl apply -f ./nfs-mariadb-pvc.yml

4. HelmでMariaDBのインストール
以下のコマンドでbitnamiのMariaDBをインストールします。htdocsPVCパラメータで使用する永続ボリューム要求を指定します。
helm repo update

helm install my-mariadb bitnami/mariadb --set primary.persistence.existingClaim=nfs-mariadb-pvc --set auth.rootPassword=mymariadb

パラメータについては、以下を指定します。
primary.persistence.existingClaim: 永続ボリューム要求の名称
auth.rootPassword: rootユーザのパスワード

他のパラメータについては、以下を参照してください
https://github.com/bitnami/charts/tree/master/bitnami/mariadb

※アンインストールする場合は、以下のコマンドを実行します。
helm uninstall my-mariadb

5. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/my-mariadb 3306:3306

※接続確認
mariadb -h ※MinikubeをインストールしたホストのIP -uroot -pmymariadb mysql

※MariaDBのクライアントは以下のコマンドでインストールできます。
sudo apt-get -y install mariadb-client

関連情報

Ubuntu 20.04にNFSサーバをインストールする

2022年1月27日木曜日

MinikubeとHelmでNFS上の永続ボリュームを使用するApache Httpdをデプロイする

MinikubeとHelmでNFS上の永続ボリュームを使用するApache Httpdをデプロイするには、以下の手順を実行します。

実行手順

1. テスト用ページの作成
NFSサーバーのホストにテスト用ページを作成します。
sudo mkdir -p /shared_dir/html

echo '<html><head><title>sample</title></head><body>contents on NFS server.</body></html>' | sudo tee /shared_dir/html/index.html

2.永続ボリュームの作成
以下のコマンドで、NFSサーバ上の永続ストレージを作成します。
cat << EOF > nfs-httpd-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-httpd-pv
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadOnlyMany
  nfs:
    server: ※NFSサーバのIPアドレス
    path: "/shared_dir/html" ※NFSサーバのパス
  mountOptions:
    - nfsvers=4.2
EOF

kubectl apply -f ./nfs-httpd-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで、永続ストレージ要求を作成します。
cat << EOF > nfs-httpd-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-httpd-pvc
spec:
  accessModes:
    - ReadOnlyMany
  storageClassName: ""
  resources:
    requests:
      storage: 2Gi
  volumeName: nfs-httpd-pv
EOF

kubectl apply -f ./nfs-httpd-pvc.yml

4. HelmでApacheのインストール
以下のコマンドでbitnamiのApache Httpdをインストールします。htdocsPVCパラメータで使用する永続ボリューム要求を指定します。
helm repo update

helm install my-httpd-apache bitnami/apache --set htdocsPVC=nfs-httpd-pvc

※その他のパラメータについては、以下のbitnami apacheのgithubリポジトリを参照してください
https://github.com/bitnami/charts/tree/master/bitnami/apache

5. Port-Fowardingで外部からアクセスできるようにする
以下のコマンドを実行して、外部からアクセスできるようにします。
kubectl port-forward --address 0.0.0.0 deployment/my-httpd-apache  8080:8080

ブラウザからhttp://<ホスト名:8080/ にアクセスします

※アンインストールする時には以下のコマンドを実行します。
helm uninstall my-httpd-apache

関連情報

Ubuntu 20.04にNFSサーバをインストールする