Oracle WebLogic Operator チュートリアル

Traefik Software Loadbalancerのインストール

WebLogic Server Kubernetes Operatorは、Traefik、VoyagerそしてApacheの3つのロードバランサをサポートしています。 サンプルはdocumentationで提供されています。

このチュートリアルでは、WebLogicクラスタのロードバランシングを行うためにTraefik ingress controllerをインストールする方法を示します。

Helm chartを用いたTraefik operatorのインストール

WebLogic OperatorのローカルGitレポジトリが存在するディレクトリに移動します。

cd /u01/content/weblogic-kubernetes-operator/

traefikネームスペースにTraefik operatorをインストールするために以下のコマンドを実行します:

helm install stable/traefik \
--name traefik-operator \
--namespace traefik \
--values kubernetes/samples/charts/traefik/values.yaml  \
--set "kubernetes.namespaces={traefik}" \
--set "serviceType=LoadBalancer"

以下のような出力を得られます:

 NAME:   traefik-operator
 LAST DEPLOYED: Mon Feb  4 10:58:41 2019
 NAMESPACE: traefik
 STATUS: DEPLOYED

 RESOURCES:
 ==> v1/ConfigMap
 NAME              DATA  AGE
 traefik-operator  1     24s

 ==> v1/ClusterRole
 NAME              AGE
 traefik-operator  23s

 ==> v1/Service
 NAME                        TYPE          CLUSTER-IP     EXTERNAL-IP     PORT(S)                     AGE
 traefik-operator-dashboard  ClusterIP     10.96.202.131  <none>          80/TCP                      23s
 traefik-operator            LoadBalancer  10.96.154.112  129.213.172.44  80:32396/TCP,443:32736/TCP  23s

 ==> v1beta1/Ingress
 NAME                        HOSTS                ADDRESS  PORTS  AGE
 traefik-operator-dashboard  traefik.example.com  80       23s

 ==> v1/Pod(related)
 NAME                               READY  STATUS   RESTARTS  AGE
 traefik-operator-8486f75bbd-q6pz5  1/1    Running  0         23s

 ==> v1/Secret
 NAME                           TYPE    DATA  AGE
 traefik-operator-default-cert  Opaque  2     24s

 ==> v1/ServiceAccount
 NAME              SECRETS  AGE
 traefik-operator  1        23s

 ==> v1/ClusterRoleBinding
 NAME              AGE
 traefik-operator  23s

 ==> v1/Deployment
 NAME              DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
 traefik-operator  1        1        1           1          23s


 NOTES:

 1. Get Traefik's load balancer IP/hostname:

      NOTE: It may take a few minutes for this to become available.

      You can watch the status by running:

          $ kubectl get svc traefik-operator --namespace traefik -w

      Once 'EXTERNAL-IP' is no longer '<pending>':

          $ kubectl describe svc traefik-operator --namespace traefik | grep Ingress | awk '{print $3}'

 2. Configure DNS records corresponding to Kubernetes ingress resources to point to the load balancer IP/hostname found in step 1

以上で、Traefikのインストールは完了です。Traefik (Loadbalancer) サービスを確認しましょう:

kubectl get service -n traefik
NAME                         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE
traefik-operator             LoadBalancer   10.96.154.112   129.213.172.44   80:32396/TCP,443:32736/TCP   2h
traefik-operator-dashboard   ClusterIP      10.96.202.131   <none>           80/TCP                       2h
traefik-operator サービスのEXTERNAL-IPを確認します。これは、 WebLogic adminコンソールやサンプルアプリケーションを外部に公開するためのパブリックIPアドレスです。

パブリックIPアドレスだけを確認したい場合は、以下のコマンドを実行します:

$ kubectl describe svc traefik-operator --namespace traefik | grep Ingress | awk '{print $3}'
129.213.172.44

Helm Chartsを確認しましょう:

$ helm list
NAME                            REVISION        UPDATED                         STATUS          CHART                   APP VERSION     NAMESPACE                  
sample-weblogic-operator        1               Tue Nov 19 06:34:30 2019        DEPLOYED        weblogic-operator-2.3.0                 sample-weblogic-operator-ns
traefik-operator                1               Tue Nov 19 06:35:13 2019        DEPLOYED        traefik-1.79.0          1.7.14          traefik

curlを使って、Traefik's dashboardを確認することもできます。上記で確認したパブリックIPアドレス(EXTERNAL_IP_ADDRESS)を使います:

curl -H 'host: traefik.example.com' http://EXTERNAL_IP_ADDRESS

以下のように表示されます:

$ curl -H 'host: traefik.example.com' http://129.213.172.44
<a href="/dashboard/">Found</a>.

続いて、WebLogic Domainのデプロイに進んでください。