Tanzu Kubernetes Grid 클러스터에 이미지 파일을 배포할 수 있습니다.
사전 요구 사항
- Tanzu Kubernetes Grid 클러스터가 있어야 합니다.
- Oracle WebLogic Server 구성 요소에서 성공적인 컨테이너화.
- 다음 단계를 수행하여 클러스터에 Oracle의 WebLogic Kubernetes 운영자를 배포합니다.
- 다음 명령을 실행합니다.
- WebLogic 운영자를 설치합니다.
프로시저
- 구성 요소 세부 정보에 제공된 링크에서 이미지 아티팩트 ZIP 파일을 다운로드하고 압축을 풉니다.
- 모든 암호에 대해 네임스페이스, 사용자 이름, 암호와 같은 특정 세부 정보로
create_k8s_secrets.sh
를 업데이트합니다.
- 도메인 네임스페이스를 생성합니다.
# create domain namespace
kubectl create namespace demo
# upgrade weblogic-operator with the Domain namespace
kubectl label ns demo weblogic-operator=enabled
- 동일한 네임스페이스에 레지스트리에 대한 암호를 생성합니다.
#!/bin/bash
set -eu
# Edit these values to change the namespace or domain UID
NAMESPACE=demo
DOMAIN_UID=wldomain1
function create_k8s_secret {
kubectl -n $NAMESPACE delete secret ${DOMAIN_UID}-$1 --ignore-not-found
kubectl -n $NAMESPACE create secret generic ${DOMAIN_UID}-$1 --from-literal=password=$2
kubectl -n $NAMESPACE label secret ${DOMAIN_UID}-$1 weblogic.domainUID=${DOMAIN_UID}
}
function create_paired_k8s_secret {
kubectl -n $NAMESPACE delete secret ${DOMAIN_UID}-$1 --ignore-not-found
kubectl -n $NAMESPACE create secret generic ${DOMAIN_UID}-$1 --from-literal=username=$2 --from-literal=password=$3
kubectl -n $NAMESPACE label secret ${DOMAIN_UID}-$1 weblogic.domainUID=${DOMAIN_UID}
}
# Update <admin-user> and <admin-password> for weblogic-credentials
create_paired_k8s_secret weblogic-credentials <admin-user> <admin-password>
# Update <user> and <password> for jdbc-jdbc-data-source-0
create_paired_k8s_secret jdbc-jdbc-data-source-0 c##test <password>
# Update <password> for runtime-encryption-secret, This is a special secret required by Model in Image.
create_k8s_secret runtime-encryption-secret <password>
- 스크립트를 실행하고 네임스페이스에 암호가 성공적으로 생성되었는지 확인합니다.
kubectl get secrets -n demo
#Output
NAME TYPE DATA AGE
default-token-6ls2z kubernetes.io/service-account-token 3 5d13h
docker-secret kubernetes.io/dockerconfigjson 1 4d22h
harbor-cred kubernetes.io/dockerconfigjson 1 4d22h
wldomain1-jdbc-jdbc-data-source-0 Opaque 2 3d14h
wldomain1-runtime-encryption-secret Opaque 1 3d14h
wldomain1-weblogic-credentials Opaque 2 3d14h
- 도메인을 준비하고 배포합니다.
- Domain.yaml.extn 파일을 다운로드하고 다음 매개 변수를 추가 및 업데이트하여 배포를 위한 Domain.yaml을 생성합니다.
- image: WebLogic 도메인 이미지의 이름 입력
- domainHomeSourceType: FromModel
- webLogicCredentialsSecret
- JAVA_OPTIONS "-Dweblogic.security.SSL.ignoreHostnameVerification=true"
- runtimeEncryptionSecret
- introspector 포드가 지속적으로 생성 및 종료를 반복하는 경우 느린 네트워크에 대해 초 단위의 시간(예: 600)으로 introspectorJobActiveDeadlineSeconds를 추가합니다.
- 이전 스크립트를 실행한 후 생성된 추가 암호입니다(있는 경우).
샘플 Domain.yaml
kind: Domain
metadata:
name: wldomain1
spec:
domainHome: /home/oracle/WLDOMAIN1
image: 'imthangadurai/wl_12_1_0_3:1.0.0'
domainHomeSourceType: FromModel
imagePullSecrets:
- name: 'docker-secret'
webLogicCredentialsSecret:
name: wldomain1-weblogic-credentials
clusters:
- clusterName: 'Cluster-0'
replicas: 2
serverPod:
env:
- name: JAVA_OPTIONS
value: "-Dweblogic.security.SSL.ignoreHostnameVerification=true"
configuration:
introspectorJobActiveDeadlineSeconds: 600
model:
domainType: WLS
runtimeEncryptionSecret: 'wldomain1-runtime-encryption-secret'
secrets:
- 'wldomain1-weblogic-credentials'
- 'wldomain1-jdbc-jdbc-data-source-0'
- 업데이트된 Domain.yaml을 동일한 네임스페이스에 배포하면 Introspector 포드가 먼저 실행되고 Oracle WebLogic Server 이미지와 생성된 도메인 포드(예: admin, server-0, server-1 등)를 가져옵니다.
kubectl apply -f Domain.yaml -n <namespace>
# Watch for the status of the pods
# admin server, managed-server1 and managed-server2 needs to be in running state
kubectl get pods -n demo --watch
NAME READY STATUS RESTARTS AGE
wldomain1-introspector-bq4dt 1/1 Running 0 100s
wldomain1-introspector-bq4dt 0/1 Completed 0 114s
wldomain1-introspector-bq4dt 0/1 Terminating 0 115s
wldomain1-introspector-bq4dt 0/1 Terminating 0 115s
wldomain1-adminserver 0/1 Pending 0 0s
wldomain1-adminserver 0/1 Pending 0 0s
wldomain1-adminserver 0/1 ContainerCreating 0 0s
wldomain1-adminserver 0/1 Running 0 2s
# This confirms the pods are running successfully
kubectl get pods -n demo
NAME READY STATUS RESTARTS AGE
wldomain1-adminserver 1/1 Running 0 16m
wldomain1-server-0 1/1 Running 0 15m
wldomain1-server-1 1/1 Running 0 15m
wldomain1-server-3 1/1 Running 0 15m
wldomain1-server-4 1/1 Running 0 15m
- Oracle WebLogic Server 관리 서버에 액세스하려면 다음 중 하나를 수행합니다.
- traefik와 같은 수신 컨트롤러를 생성합니다.
- 다음 명령을 사용하여 서비스를 노출합니다.
kubectl expose pod <pod-name> --port=<port> --target-port=<port> --name porname --type=LoadBalancer
kubectl patch svc portname-p '{"spec": {"type" : "LoadBalancer", "externalIPs":["<LB-IP>"]}}'