暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

传统应用现代化,Weblogic Kubernetes Operator工具介绍

1978

毫无疑问,当前是一个云的时代,我们身边新型应用层出不穷、吸引眼球,为我们提供创新甚至颠覆性的服务,与此同时,那些诞生于云时代之前的传统应用关注度较少,但那些传统应用仍然时时刻刻为我们提供关键服务,由此,传统可能会给企业带来两难的窘境,这些应用程序仍然至关重要,但它们同时也可能会是业务运营和发展的瓶颈。随着时间的推移,企业现有系统可能无法响应业务流程变更,无形中增加了成本。

传统应用现代化,旨在帮助企业实现传统环境的现代化,从而提高其业务灵活性和成效,降低运营成本和风险。传统应用现代化有很多工具和方法解决传统应用在运行环境、开发环境、运维工具、用户使用体验的问题。

传统应用系统正不断向 IT 部门提出挑战,为了解决这个问题,很多IT 部门都转向采用灵活创新的中间件、自动化和应用平台解决方案,以实现传统现代化。为解决运行与Weblogic上的Java 应用系统的现代化的挑战,甲骨文提供了Weblogic Kubernetes Operator工具,协助企业将应用迁移到云端环境中,提供现代化的运行环境和监控管理体验。

本文将介绍WeblogicKubernetes Operator及其使用方法,实例演示在Kubernetes 上搭建一个按需配置的Weblogic集群,为运行于Weblogic中的应用迁移到Kubernetes 云环境中提供一种参考解决方案。

开源免费:

Weblogic KubernetesOperator是一款完全开源免费的工具,所有代码托管于GitHub上,可以自由下载和使用。

云中立,同时适合部署于企业数据中心内部:

借助Operator工具,可以将相关镜像部署于任何支持kubernetes 容器环境的云厂商的环境中,也可以将相关镜像部署于企业自己的数据中心里,满足企业混合架构的需求。

行业最佳实践:

基于Operator工具开发团队帮助大量企业应用迁移的经验,结合行业在应用安全、监控管理、日志管理、组件管理等方面的最佳实践,使用Helm、Grafana、Prometheus、ELK、Traefik工具软件,为传统应用在容器环境中的运行提供现代化的运行环境与监控体验。

使用Operator在Kubernetes 环境中安装Weblogic 集群的总体流程如下:

  1. 下载经过认证的Weblogic docker镜像到Kubernetes能够访问的镜像仓库中。

  2. 安装Operaor及Ingress插件到Kubernetes集群中

  3. 使用Operator提供的脚本工具,生成按需定制的Kubernetes yaml文件,运行yaml文件,在Kubernetes环境中自动创建Weblogic集群。

环境准备:

安装docker,安装成功之后查看版本信息

安装kubernetes –minikube,安装成功之后查看版本信息

安装helm ,安装成功之后查看版本信息

1. 准备镜像:

1.1 下载weblogic-kubernetes-operator 镜像:

docker pulloracle/weblogic-kubernetes-operator:2.1

1.2 下载treafik 镜像:

dockerpull traefik:1.7.6

1.3 下载weblogic 镜像:

docker pullstore/oracle/weblogic:12.2.1.3

下载镜像成功之后,需要从本地 镜像 docker image 加载 image 到 minkube kubernetes 可以访问到的docker 镜像仓库里。

 

2. 创建weblogicdomain 脚本准备工作

2.1 赋予helm  cluster-admin 权限的 ClusterRole

cat << EOF | kubectlapply -f - apiVersion: rbac.authorization.k8s.io/v1 kind:ClusterRoleBinding metadata:name: helm-user-cluster-admin-role roleRef:apiGroup: rbac.authorization.k8s.io kind: ClusterRole name:cluster-admin subjects:- kind: ServiceAccount name:default namespace: kube-system EOF

2.2 使用helm 安装 traefik

helminstall stable/traefik \ --name traefik-operator \ --namespace traefik \--values kubernetes/samples/charts/traefik/values.yaml \ --set "kubernetes.namespaces={traefik}" \ --wait

2.3 安装weblogic kubernetes operator

a) 为operator 创建namespace

kubectlcreate namespace sample-weblogic-operator-ns

b) 在operator的 namespace 里创建 service account

kubectlcreate serviceaccount -n sample-weblogic-operator-nssample-weblogic-operator-sa

c) 在clone的weblogic kubernetes operator 目录下使用helm 安装weblogic kubernetes operator到kubernetes 集群

helminstall kubernetes/charts/weblogic-operator \ --name sample-weblogic-operator \--namespace sample-weblogic-operator-ns \ --setimage=oracle/weblogic-kubernetes-operator:2.1 \ --setserviceAccount=sample-weblogic-operator-sa \ --set "domainNamespaces={}" \ --wait

d) 验证 weblogickubernetes operator 是否正常运行

kubectl get pods -nsample-weblogic-operator-ns

3. 创建weblogic domain

3.1 为domain 创建namespace

kubectl create namespacesample-domain1-ns

 

3.2 使用helm 更新weblogic kubernetesoperator 的namespace

helmupgrade \ --reuse-values \ --set "domainNamespaces={sample-domain1-ns}" \ --wait \sample-weblogic-operator \ kubernetes/charts/weblogic-operator

3.3 使用helm更新kubernetes ingress 插件Traefik 的namespace

helmupgrade \ --reuse-values \ --set "kubernetes.namespaces={traefik,sample-domain1-ns}" \ --wait \traefik-operator \ stable/traefik

3.4 创建 weblogic domain sample-domain1

a) 创建kubernetes secret

kubernetes/samples/scripts/create-weblogic-domain-credentials/create-weblogic-credentials.sh\ -u weblogic -p welcome1 -n sample-domain1-ns -d sample-domain1

b) 创建weblogic domain image

在clone的weblogic kubernetesoperator 目录下,复制

kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/create-domain-inputs.yaml,修改信息

   domainUID:sample-domain1-ns

   domainHomeImageBase:store/oracle/weblogic:12.2.1.3

    weblogicCredentialsSecretName:sample-domain1-weblogic-credentials

   exposeAdminNodePorttrue

3.5 运行创建脚本:

./create-domain.sh-i my-inputs.yaml -o some/output/directory -u weblogic -p welcome1

脚本运行结果将创建一个新的image ,产生两个文件

Successfullytagged 12213-domain-home-in-image:latest

Createdomain sample-domain1 successfully.

domain.weblogic.oracle/sample-domain1created

Domainsample-domain1 was created and will be started by the WebLogic KubernetesOperator

Thefollowing files were generated:

 /temp/weblogic-domains/sample-domain1/create-domain-inputs.yaml

 /temp/weblogic-domains/sample-domain1/domain.yaml

Completed

 

3.6 在kubernetes 创建 weblogic domain

进入产生的脚本的目录,运行kubectl命令创建weblogic domain

kubectl apply -f   domain.yaml

4. 检查kubernetes上 weblogic cluster 运行情况

运行完成之后,将在minikube 的kubernetes cluster里创建一个weblogic domain包含一个weblogic cluster,该weblogic cluster 由一个admin server和两个managed server 组成。使用下面命令查看pod 和service的状态

kubectlget po -n sample-domain1-ns -o wide

kubectl get svc --namespacesample-domain1-ns

使用minikube 虚机的的ip 访问 weblogic 管理控制台

http://192.168.99.100:30701/console/,登录之后,可以查看运行与kubernetes cl 上的 weblogic cluster的运行情况。可以看见Weblogic的Dynamic Cluster中包含一个admin server,2个运行状态的managed server以及3个停止状态的managed server。我可以选择将传统应用部署于运行在Kubernetes 环境中的Weblogic集群上。

本文演示了使用Operator搭建一个运行与Kubernetes的Weblogic集群,除此之外,WeblogicKubernetes Operator还提供一系列的工具脚本,帮助我们完成满足应用安全、日志监控、性能监控、负载均衡等方面的要求,使我们能够方便的整合Grafana、Prometheus、ELK、Traefik等Kubernetes插件,运行于Weblogic的应用满足现代化的需求。更多信息访问:

https://oracle.github.io/weblogic-kubernetes-operator/


作者简介

向志华,甲骨文PaaS专家团队高级咨询顾问,专注 Application PaaS 产品及服务,同时关注Docker容器产品及Kubernetes容器调度产品方向。13年IT行业从业经验,擅长J2EE产品架构及开发,参与过Openstack相关产品研发工作。您可以通过george.xiang@oracle.com,与他联系。


扫描二维码或点击阅读原文

快速预约精选云解决方案演示


文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论