apimanager-wso2-OKD-deploy

本文档详细介绍了如何在OKD上部署WSO2 API Manager的高可用(HA)模式,使用Router暴露服务,并配置TLS证书。同时,文章还涵盖了如何将WSO2 API Manager与Keycloak集成,实现身份验证和授权。此外,还涉及到邮件通知的配置和API的导入导出自动化。

‘一,wso2部署为pod官网 有四种部署模式,这里使用标准HA部署

1,使用helm把chart拉到本地 官网只有k8s的chart 这里我们要拉下来改一下

官网地址:

kubernetes-apim/advanced at master · wso2/kubernetes-apim · GitHub

git clone  https://github.com/wso2/kubernetes-apim.git 

2, 把包解压,列出这个目录

这几个目录分别对应不同的部署模式每个目录下都是一个Chart,am-pattern-1就是标准的HA部署

ls  kubernetes-apim/advanced/
am-pattern-1  am-pattern-2  am-pattern-3  am-pattern-4  mysql-am 

3,修改values.yaml 直接使用msyql数据库也可以,我由于特殊需要换成postgresql,且不能使用,cluster role binding

vim  kubernetes-apim/advanced/am-pattern-1/values.yaml
   mysql: false #这里改为 false 因为后面要换成postgresql
    nfsServerProvisioner: false     #这里改为false,启动nfs需要cluster role binding,
    #storageClass: &storage_class "nfs" #这一行定义storage_class,因为我们关掉了nfs 所以这里也注释掉
    #mysql-am:                                 
    #  mysql:
    #    persistence:
    #      storageClass: *storage_class #这几行注释掉,这里会去使用上面 &storage_class "nfs"定义的nfs
   hostname: "api.apps.openshift.devops.philips-healthsuitechina.com.cn" #改为你okd,路由最后暴露出来的连接,
   kubernetes:
     # Name of Kubernetes service account
     serviceAccount: "default" #改为默认的 default 不然会报错,
 

4,因为是HA部署这两个目录下分别有 deployment和conf 文件

ls  kubernetes-apim/advanced/am-pattern-1/templates/am
    instance-1 instance-2

5,由于后面需要把数据库改为postgresql,但是默认的image:wso2/wso2am:4.1.0里面没有postgresql-42.4.0.jar这个类,

参考官网地址:Change to PostgreSQL - WSO2 API Manager Documentation 4.1.0

下载postgresql-42.4.0.jar

 wget https://jdbc.postgresql.org/download/postgresql-42.4.0.jar  

6,把 postgresql-42.4.0.jar持久化到容器

 方式一 configmap:   #这里可以使用configmap去挂载这个包

kubectl create configmap postgresql-jar --from-file=postgresql-42.4.0.jar   #直接指定一个文件 创建为 configmap    
vim kubernetes-apim/advanced/am-pattern-1/templates/am/instance-1/wso2am-pattern-1-am-deployment.yaml          
	volumeMounts:
	  - name: config-vloume
		mountPath: /home/wso2carbon/wso2am-4.1.0/repository/components/lib/postgresql-42.4.0.jar
		subPath: home/wso2carbon/wso2am-4.1.0/repository/components/lib/postgresql-42.4.0.jar
		 #这里使用subPath这里开头不能是 "/" 这里必须严格遵守这种写法如果不使用subPath就会覆盖这个目录原来的文件
 volumes:    
	- name: config-vloume
	  configMap:
		 items:
			- key: postgresql-42.4.0.jar
		  path: etc/nginx/postgresql-42.4.0.jar
	 name: postgresql-jar

  方式二 PVC挂载: 这里我们先创建一个临时pod,手动创建一个pvc把这个pvc挂载到pod里面           #这里保险起见我用的是方式二

vim nginx-test.yaml
	volumeMounts:
	   - name: java-class-jar
		  mountPath: /home/wso2carbon/wso2am-4.1.0/repository/components/lib/
volumes:
	  - name: java-class-jar
		 persistentVolumeClaim:
			claimName: java-class-jar
kubectl cp wso2am-4.1.0/repository/components/lib/*     nginx-deployment-78757ff87d-c4jjj:/home/wso2carbon/wso2am-4.1.0/repository/components/lib/ -n project-apimanager #先把原有的拷贝进去
kubectl cp   postgresql-42.4.0.jar nginx-deployment-78757ff87d-c4jjj:/home/wso2carbon/wso2am-4.1.0/repository/components/lib/ -n project-apimanager    #在把刚才下载的拷贝进去
vim kubernetes-apim/advanced/am-pattern-1/templates/am/instance-1/wso2am-pattern-1-am-deployment.yaml #挂载到最终pod对应的目录,instance-2/wso2am-pattern-1-am-deployment.yaml也一样加上配置
volumeMounts:
	   - name: java-class-jar
		  mountPath: /home/wso2carbon/wso2am-4.1.0/repository/components/lib/
volumes:
	  - name: java-class-jar
		 persistentVolumeClaim:
			claimName: java-class-jar

7,在当前project部署postgresql

helm repo add bitnami https://charts.bitnami.com/bitnami #添加 对应repo
helm pull bitnami/postgresql #把repo下载下来
vim values.yaml
	serviceAccount:
		create: false       #后面的helm 模板应该是要引用这里然后自己创建一个role来绑定,这里关掉
	storageClass: "" #这里把存储类的名字改为空 后面的helm 模板引用的就是空的,这样就会使用默认的存储类
helm install postgresql-prod postgresql -n project-apimanager 
	#这里安装的时候我把名字写为 postgresql-prod这样容易与测试环境区分,这个名字在helm模板里面叫做release会多次引用,后面的ingerss和,service都会随着名字的改变而改变

8,安装完成数据库后做数据库初始化操作

先把pod端口映射到本地
kubectl get secret postgresql-prod  -o jsonpath="{.data.postgres-password}"  | base64 --decode #获取 postgres 用户密码:  
kubectl port-forward --address 0.0.0.0 service/postgresql-prod  5432:5432 -n project-apimanager&   #使用--address 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值