针对10.1及之前版本,需要手动去配置证书,未来版本会考虑进行界面化配置。
一、提前准备
1. 证书需要准备三个文件
- *.key
- *.crt
- *.keystore
2. 需要知道自己创建的微服务是哪个命名空间下的
例如下图:微服务(云套件)命名空间为:icloud-native-10
还可以通过iManager点击所创建的微服务(云套件)名称后,查看URL后面,例如:
http://XXX.XXX.XXX.XX:31100/views/appset/detail.html?type=icloud-native&id=10
二、Keycloak 证书替换
1.命名空间切换到当前微服务(云套件)后,访问K8S UI右上角点击创建按钮
2.创建Keycloak PVC挂载目录
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-keycloak-certificate-${appsetId}
labels:
type: icloud-native
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Mi
storageClassName: appset-storage-class-gisappset
其中 ${appsetId} 用实际 id 替换,id 是结尾的数字,比如 icloud-native-10,id 就是 10。
如果储存类有修改,那么用实际的存储类替换,默认使用的是 appset-storage-class-gisappset
创建完成后可以在K8S UI上进行搜索
pvc-keycloak-certificate-10
点击名称
点击存储卷
即可找到物理存储地址
3.将.key和*.crt证书放到上一步物理存储地址,并修改文件名为tls.key 和 tls.crt,其中 tls.key 是私钥,tls.crt 是公钥。
4.给予 tls.key 和 tls.crt 文件权限
chmod 755 *
5.修改keycloak编排文件
kubectl -n icloud-native-${appsetId} edit deploy keycloak
5.1 增加pvc
volumes:
- name: certificate
persistentVolumeClaim:
claimName: pvc-keycloak-certificate-10
5.2 将 keycloak 容器的 /etc/x509/https 目录挂载到证书目录
volumeMounts:
- mountPath: /etc/x509/https
name: certificate
6.保存退出后,会重新创建Pod
输入:wq ,保存退出并更新编排
:wq
7.Keycloak证书更新,其表现在微服务(云套件)登录。
二、Gateway 证书替换
1.命名空间切换到当前微服务(云套件)后,访问K8S UI右上角点击创建按钮
2.创建Gateway PVC挂载目录
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-gateway-certificate-${appsetId}
labels:
type: icloud-native
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Mi
storageClassName: appset-storage-class-gisappset
创建完成后可以在K8S UI上进行搜索
pvc-gateway-certificate-10
点击名称
点击存储卷
即可找到物理存储地址
3.将keystore证书放到上一步物理存储地址。
4.给予*.keystore文件权限
chmod 755 *
5.修改Gateway编排文件
kubectl -n icloud-native-${appsetId} edit deploy iserver-gateway
5.1 增加pvc
- name: certificate
persistentVolumeClaim:
claimName: pvc-gateway-certificate-10
5.2 只保留 gateway 启动脚本
5.3 增加映射目录
- mountPath: /etc/icloud/gateway/config/certificate
name: certificate
5.4 修改https证书环境配置
- icn_ext_param_server_ssl_keyAlias 是证书别名
- icn_ext_param_server_ssl_keyStorePassword 证书密码
- icn_ext_param_server_ssl_keyStoreType 证书类型,比如PKCS12
- icn_ext_param_server_ssl_keyStore 证书所在容器路径
6.保存退出后,会重新创建Pod
输入:wq ,保存退出并更新编排
:wq
7.Gateway证书更新,其表现在微服务页面和自己的服务。
(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)