機械翻訳について

データベースの実行

目次

概要

この項では、サンプルまたは基本的なテスト目的に適したアプローチを使用して、Kubernetesクラスタで一時「Oracleデータベース」または「MySQLデータベース」を実行する方法について説明します。

NOTES:

  • データベースは一時ストレージで構成され、停止またはポッド失敗時にすべての情報が失われることを意味します。

  • Oracle Databaseイメージは、非本番での使用「のみ」でサポートされています。 詳細は、My Oracle Supportノートを参照してください: Docker 「ドキュメントID 2216342.1」で実行されているデータベースの場合は、Oracle Support。

Kubernetes上のOracleデータベース

次の例は、次の属性を使用して一時的なOracleデータベースを設定する方法を示しています:

属性
Kubernetesネームスペース default
Kubernetesポッド oracle-db
Kubernetesサービス名 oracle-db
Kubernetesサービス・ポート 1521
Kubernetesノード・ポート 30011
イメージ container-registry.oracle.com/database/enterprise:12.2.0.1-slim
DBAユーザー(完全な権限あり) sys as sysdba
DBAパスワード <password placeholder>
データベース・ドメイン(WebLogicドメインと同じではない) k8s
データベースPDB devpdb
Kubernetesクラスタ内のデータベースURL (任意のネームスペースから) oracle-db.default.svc.cluster.local:1521/devpdb.k8s
Kubernetesクラスタ外のデータベースURL dns-name-that-resolves-to-node-location:30011/devpdb.k8s
  1. オペレータ・ソースを取得し、/tmp/weblogic-kubernetes-operatorに配置します。

    例えば:

    $ cd /tmp
    
    $ git clone --branch v4.2.8
     https://github.com/oracle/weblogic-kubernetes-operator.git
    

    ノート: オペレータ・ソース・ツリーの最上位ディレクトリを/tmp/weblogic-kubernetes-operatorと呼びますが、別のロケーションを使用できます。

    オペレータ・ソースの取得の詳細は、「開発者ガイドの要件」を参照してください。

  2. データベース・イメージにアクセスできることを確認します:

    • ブラウザを使用してhttps://container-registry.oracle.comにログインし、Database -> enterpriseを選択してライセンス契約に同意します。

    • データベース・イメージを取得します:

      • ローカル・シェルでは、docker login container-registry.oracle.comです。
      • ローカル・シェルでは、docker pull container-registry.oracle.com/database/enterprise:12.2.0.1-slimです。
    • Kubernetesクラスタ・ノードがすべてローカル・キャッシュ内のデータベース・イメージへのアクセス権を持っていない場合、次のようになります:

      • container-registry.oracle.comのログイン資格証明を使用して、Kubernetes docker secretをデフォルト・ネームスペースにデプロイします:
        kubectl create secret docker-registry docker-secret \
                --docker-server=container-registry.oracle.com \
                --docker-username=your.email@some.com \
                --docker-password=your-password \
                --docker-email=your.email@some.com \
                -n default
        
        -s your-image-pull-secretを使用して、このシークレットの名前をパラメータとして次のステップのstart-db-service.shに渡します。
      • または、クラスタ内の各ローカルDockerキャッシュにデータベース・イメージをコピーします。
      • 詳細については、FAQ 「イメージをプルできません」を参照してください。

      警告: Oracle Databaseイメージは、本番以外の用途でのみサポートされています。 詳細は、My Oracle Supportノートを参照してください: Docker 「ドキュメントID 2216342.1」で実行されているデータベースの場合は、Oracle Support。

  3. デフォルトのネームスペースにoracle-db-secretという名前のシークレットを作成し、目的のOracle SYS DBAパスワードをそのpasswordキーに作成します。

    • 例えば:
      $ kubectl -n default create secret generic oracle-db-secret \
        --from-literal='password=<password placeholder>'
      
      (<password placeholder>を必要なパスワードに置き換えます。)
    • Oracle Databaseパスワードには、大文字、小文字、数字および特殊文字を含めることができます。 Oracle Database接続文字列の潜在的な解析エラーを排除するには、特殊文字として"_"および"#"のみを使用します。
  4. データベース・イメージを使用してデプロイメントを作成します:

    /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-oracle-db-serviceのサンプル・スクリプトを使用して、デプロイメントoracle-dbで実行されているOracleデータベースを作成します。

    $ cd /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-oracle-db-service
    
    $ start-db-service.sh
    

    ノート:

    • start-db-service.sh -hをコールして、ネームスペース、ノード・ポート、シークレット名などをカスタマイズする方法を確認します。
    • stop-db-service.shをコールして、oracle-dbデプロイメントを停止およびクリーンアップします。
    • トラブルシューティングするには、データベース・ポッドでkubectl describe pod DB_POD_NAMEおよびkubectl logs DB_POD_NAMEコマンドを使用します。

Kubernetes上のMySQLデータベース

次の例は、次の属性を使用して一時的なMySQLデータベースを設定する方法を示しています:

属性
Kubernetesネームスペース default
Kubernetesポッド mysql-db
Kubernetesサービス名 mysql-db
Kubernetesサービス・ポート 3306
イメージ mysql:5.6
rootユーザー(完全な権限あり) <user name placeholder>
rootパスワード <password placeholder>
Kubernetesクラスタ内のデータベースURL (任意のネームスペースから) jdbc:mysql://mysql-db.default.svc.cluster.local:3306/mysql

次のYAMLをmysql.yamlという名前のファイルにコピーします:

apiVersion: v1
kind: Pod
metadata:
  name: mysql-db
  namespace: default
  labels:
    app: mysql-db
spec:
  terminationGracePeriodSeconds: 5
  containers:
  - image: mysql:5.6
    name: mysql
    env:
    - name: MYSQL_ROOT_USER
      valueFrom:
        secretKeyRef:
          name: mysql-secret
          key: root-user
    - name: MYSQL_ROOT_PASSWORD
      valueFrom:
        secretKeyRef:
          name: mysql-secret
          key: root-password
    ports:
    - containerPort: 3306
      name: mysql
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-db
  namespace: default
spec:
  ports:
  - port: 3306
  selector:
    app: mysql-db
  clusterIP: None
---
apiVersion: v1
kind: Secret
metadata:
  name: mysql-secret
  namespace: default
data:
  root-user: <user name placeholder>
  root-password: <password placeholder>

ファイルmysql.yamlで、<user name placeholder>および<password placeholder>をそれぞれ、base64を介してルート・ユーザー名とパスワードをパイプする出力に置き換えます:

echo -n <user name placeholder> | base64
echo -n <password placeholder> | base64

コマンドkubectl create -f mysql.yamlを使用して、MySQLをデプロイします。

リソースを停止およびクリーンアップするには、kubectl delete -f mysql.yamlを使用します。