背景
某项目kubernetes环境某个应用每隔20分钟左右就会重启一次,时间不固定,但在容器事件里面没有任何记录。
排查
首先怀疑是健康检查没过导致容器自动重启,以下是健康检查的配置
按照该配置,检查间隔30s,不健康阈值60,也就是1800s=30分钟后会标记为不健康,但很快就排除该猜测,理由是
- 手动调用健康检查是ok的
- 后台有健康检查的记录,记录显示也都是通过的
- 如果是健康检查不过的话,事件里面会有记录,这里找不到记录
正常情况下如果kubernetes重启pod那会在事件里记录重启的原因,但事件里面没有任何记录,所以可能不是kubernetes重启的,那么很容易想到一个可能性就是OOM,也就是进程因为内存使用超过限制触发OOM操作系统将其kill掉,查看操作系统日志/var/log/messages
发现以下日志
Read the rest of this entry
kubernetes
weblogic Provider
做过OAM,OID项目的同学应该都知道,要集成OAM和OID需要在weblogic的Security Realms
中配置Provider,那什么是Provider?在业务系统中,认证和授权一直是最复杂的一块,体现在
- 认证协议多样性,比如OAuth2,SAML等
- 认证方式多样性,比如二次认证,验证码认证等
- 认证策略多样性,比如有多个认证源,策略可以多样性,可以是一个不通过就不通过,也可以是只要有一个通过就全部通过
- 自定义认证的需求,这个在企业里面还是挺多的,一些系统上线时还没有相应的标准出来,所以都是自开发
- 密码认证策略多样性,大部分系统密码存储是不可逆的,如果一开始没有将密码存储在LDAP之类的服务里,后续如果要做升级,就无法拿到原始密码,那么就需要自定义密码认证策略。
总之,认证并不是用户名密码验证这么简单,所以weblogic针对不同的认证场景提供不同的Provider,weblogic作为成熟的商业服务器,自然包含大部分认证场景,以weblogic 11g为例,包含了以下Provider
Read the rest of this entry
weblogic
介绍
harbor支持docker compose和helm两种方式进行安装,一般情况下如果是kubernetes运行环境推荐用helm进行安装,如果是纯docker环境建议用docker compose进行安装,本次安装使用helm进行安装,安装版本为
v2.2.1
创建命名空间
harbor包含服务较多,建议单独创建命名空间进行安装,便于后续的管理
apiVersion: v1
kind: Namespace
metadata:
name: harbor
labels:
name: harbor
另存为harbor-namespace.yaml
文件,并执行kubectl apply -f harbor-namespace.yaml
命令进行创建
创建共享目录
目录必须创建在共享存储的介质上面,比如NFS等
mkdir -p /u02/appdata/harbor/registry
mkdir -p /u02/appdata/harbor/chartmuseum
mkdir -p /u02/appdata/harbor/jobservice
mkdir -p /u02/appdata/harbor/database
mkdir -p /u02/appdata/harbor/redis
mkdir -p /u02/appdata/harbor/trivy
chmod 777 /u02/appdata/harbor/registry
chmod 777 /u02/appdata/harbor/chartmuseum
chmod 777 /u02/appdata/harbor/jobservice
chmod 777 /u02/appdata/harbor/database
chmod 777 /u02/appdata/harbor/redis
chmod 777 /u02/appdata/harbor/trivy
Read the rest of this entry
harbor, helm, kubernetes