Kubernetes 上で Oracle WebLogic Server を動かしてみます。WebLogic Server のイメージは公式の Docker イメージを使用します。
以下の流れで紹介します。
- Preparing
- Running WebLogic Server on k8s
- Access to WebLogic Server Console
- (Optional) Using customized WebLogic Server Docker Image
現在、WebLogic Server を Kubernetes (k8s) 上で動かすことはサポートされていませんのでご注意ください。
Preparing
Docker Hub から公式の WebLogic Server イメージを落とせるようにして、Kubernetes の設定ファイルを用意しましょう。
Docker Hub の https://store.docker.com/images/oracle-weblogic-server-12c へアクセスします。
[Proceed to Checkout]を押します。
必要な情報を記入して右側のチェックボックスを選択し、[Get Content]を押すとつかえるようになります。
kubectl でDocker Hub の認証を使えるようにします。
> kubectl create secret docker-registry dockerhubsecret --docker-username=<Your DockerHub ID> --docker-password=<Your DockerHub Password> --docker-email=<Your DockerHub E-mail> secret "dockerhubsecret" created
Kubernetes の設定ファイルを作成しましょう。ここでは、Kubernetes の Deployment と Service を作成してます。 以下の設定は先ほど Docker Hub で使えるようにした WebLogic Server のイメージを使ってコンテナを作成し、デプロイ先のノードの TCP:30001 番ポートへアクセスするとコンテナの 7001 へアクセスできる設定です。
kubernetes-weblogic.yaml
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: weblogic spec: replicas: 1 template: metadata: labels: app: weblogic spec: containers: - name: weblogic image: store/oracle/weblogic:12.2.1.2 ports: - containerPort: 7001 imagePullSecrets: - name: dockerhubsecret --- kind: Service apiVersion: v1 metadata: name: weblogic spec: ports: - port: 7001 targetPort: 7001 nodePort: 30001 type: NodePort selector: app: weblogic
Running WebLogic Server on k8s
Kubernetes 上で WebLogic Server を動かし、動いたことを確認しましょう。
まずはじめに、Kubernetes の現在の状態を確認します。以下は Kubernetes 上に何も無い状況です。
> kubectl get po,svc,deployments -o wide No resources found.
先ほどの設定ファイルを使用して、環境を作成します。
> kubectl create -f kubernetes-weblogic.yaml deployment "weblogic" created service "weblogic" created
環境が作成されたことを確認します。k8s-1 というノードに pod が作成され、コンテナの TCP:7001 がノードの TCP:30001 と繋がっているのが確認できます。
> kubectl get po,svc,deployments -o wide NAME READY STATUS RESTARTS AGE IP NODE po/weblogic-1871861515-1srwq 1/1 Running 0 2m 10.244.1.6 k8s-1 NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc/weblogic 10.109.110.211 <nodes> 7001:30001/TCP 2m app=weblogic NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE CONTAINER(S) IMAGE(S) SELECTOR deploy/weblogic 1 1 1 1 2m weblogic store/oracle/weblogic:12.2.1.2 app=weblogic
Access to WebLogic Server Console
作成されたコンテナの WebLogic Server Console へアクセスしてみます。
この例では次の URL でアクセスできます。ホスト名はkubectl get
の結果から適宜変更してください。
ユーザ名は weblogicです。パスワードはコンテナのログから確認できます。以下の例ではパスワードは329c00e0
です。
> kubectl logs po/weblogic-1871861515-1srwq Oracle WebLogic Server Auto Generated Empty Domain: ----> 'weblogic' admin password: 329c00e0 Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands domain_name : [base_domain] admin_port : [7001] domain_path : [/u01/oracle/user_projects/domains/base_domain] production_mode : [prod] admin password : [329c00e0]
(Optional) Using customized WebLogic Server Docker Image
WebLogic Server をカスタマイズするにはDocker Hub からイメージを落としてカスタマイズします。最後にカスタマイズしたイメージをリポジトリへ格納します。
まずはじめに、Docker Hub へログインします。
docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: <enter your Docker ID> Password: Login Succeeded
Docker Hub から公式の Docker イメージをダウンロードします。
> docker pull store/oracle/weblogic:12.2.1.2 12.2.1.2: Pulling from store/oracle/weblogic 7bd9e1692b54: Pull complete e8bcd2aeaa6e: Pull complete e6c6fa902b1b: Pull complete d972be90ecb5: Pull complete 9b1c482dd1f8: Pull complete c424de4a0701: Pull complete Digest: sha256:154a88400832303d1b5f549f3732cd5a3bf354f3aa248482babf882c78b8833c Status: Downloaded newer image for store/oracle/weblogic:12.2.1.2
公式の Docker イメージをカスタマイズしましょう。
カスタマイズしたイメージを自分のリポジトリへ格納しましょう。以下の例では公式のイメージをそのまま使用し、自分のリポジトリであるmyrepo:5000
へ格納しています。
> docker tag store/oracle/weblogic:12.2.1.2 myrepo:5000/chiroito/weblogic:12.2.1.2 > docker push myrepo:5000/chiroito/weblogic:12.2.1.2 The push refers to a repository [myrepo:5000/chiroito/weblogic] ff2d75291e12: Pushed d21d86b63a51: Pushed 02dc0edc9a80: Pushed 2cb709854ad8: Pushed f1a396a032b4: Pushed a8cf2f688ac8: Pushed 12.2.1.2: digest: sha256:74162bce77bc0bf0f02f1782b3d611dad98cef7a5a734b80b0175737680083a7 size: 1577
設定ファイルのkubernetes-weblogic.yaml の image
にアップロードしたイメージを指定します。今回の例ではimage: myrepo:5000/chiroito/weblogic:12.2.1.2
です。