OpenShift节点kubelet证书过期异常的解决步骤
环境:OpenShift 3.10 or 3.11问题: 重新部署了新的CA,节点不再处于就绪状态。 如何手动强制创建新证书。 节点无法更新其证书,并出现以下错误: 123atomic-openshift-node[3715]: I0313 11:40:48.864375 3715 bootstrap.go:56] Using bootstrap kubeconfig to generate TLS client cert, key and kubeconfig fileatomic-openshift-node[3715]: I0313 11:40:48.865525 3715 bootstrap.go:86] No valid private key and/or certificate found, reusing existing private key or creating a new oneatomic-openshift-node[3715]: F0313 11:40:48.893737 3715 server.go:262] failed...
OpenShift解决Route-Https--Http无法跳转的问题
问题现象通过Route创建的edge类型的HTTPS,后端应用使用的是HTTP服务。但在某些情况下,后端应用使用Location时,Location地址为HTTP地址。这时浏览器将因为无法访问HTTP服务而无法实现跳转。 原理Haproxy在返回客户端时,检查返回Head,将Location地址中的HTTP替换为HTTPS,从而让浏览器获取正确的跳转链接。 解决办法更新haproxy-config.template,为edge请求的应用添加标注判断haproxy.router.openshift.io/location-scheme,如果它为https,则将Location请求中的http替换为https。具体配置如下:搜索 ssl_fc_alpn -i h2在其后添加如下配置 1234{{- if eq "https" (index $cfg.Annotaions "haproxy.router.openshift.io/location-scheme")}} acl check_locatio...
OpenShift访问外部需要认证的镜像仓库
docker login登录成功后,会在~/.docker/中创建config.json文件,内容格式如下: 123456{ "auths": { "https://registry.example.com": { "auth": "c2xmams6c2RmbGtq" }} 两种方式: 认证信息必须存放在OpenShift的NameSpace中的Secret下。 12oc -n <test-namespace> create secret docker-registry <pull-secret> --docker-server=registry.example.com --docker-username=<username> --docker-e...
OpenShift运维点汇总
应用 部署 镜像同步(UAT->PRO) 应用部署配置 New Project/New App环境变量cpu与内存资源限制健康检查复本数量创建router特殊Node节点绑定pod的亲和与互斥pod网速限速(特别是对外提供服务的pod) 应用配置中心(gitlab) 更新 镜像同步应用新版本部署 监控 Pod EFKRegistry与Router等重要服务的监控 物理层 创建资源 负载均衡器NAS存储应用私有网络 监控 vpc负载均衡器主机状态监控(CPU与内存) 集群层 备份 etcd全量备份应用配置备份(Ark)应用备份(oc export) 集群版本管理 集群升级(每个大版本升级) 日志归档与清理 EFK日志清理hawkular-cassandra日志清理journal日志归档 1journalctl --vacuum-time=3days或者journalctl --vacuum-size=200M或者在/etc/systemd/journald.conf中设置日志大小 message日志归档 ...
OpenShift通过EgressIP为Project设置对外的出口IP
集群管理员可以为项目分配特定的静态IP,方便外部系统能够识别项目下的应用的出口流量。 将出口IP分配到指定的Node 支持指定特定的IP 1$ oc patch hostsubnet <node-name> -p '{"egressIPs": ["192.168.1.2", "192.168.1.3"]}' 支持指定特定的IP段 1$ oc patch hostsubnet <node-name> -p '{"egressCIDRs": ["192.168.1.0/24"]}' 为项目指定静态出口IP 1$ oc patch netnamespace <project-name> -p '{"egressIPs": ["192.168.1.100"]}' OpenShift容器平...
OpenShift部署时如何延长组件证书的有效期
延长集群核心证书的有效期OpenShift集群正常运行中涉及到非常多的证书,有各节点通信的证书,有数据库的证书,有私有镜像仓库的证书,还有各种组件的证书(EFK、ClusterMonitor、Metrics等)。对于集群的相关证书可以通过在inventory文件中添加如下配置就可以非常方便地更改相关证书的默认有效期。 1234openshift_hosted_registry_cert_expire_days=3650openshift_ca_cert_expire_days=3650openshift_master_cert_expire_days=3650etcd_ca_default_days=3650 但是以上的几个配置对于一些组件并不起作用,如EFK等。 延长一些特殊组件证书的有效期openshift自签应用证书的有效期为2 or 5年。其中crt证书默认为两年,ca证书为5年。例如es中的证书中,admin-ca有效期为5年,admin-crt有效期为2年。 也就是说按照当前OpenShift安装的默认步骤安装的EFK组件,证书最短有效期为两年,两年后需要执行证书更...
OpenShift集群健康检查
参考文章https://docs.openshift.com/container-platform/3.11/day_two_guide/environment_health_checks.html#day-two-guide-router-and-registry-health
Openshfit-4-1部署手册
设备与网络准备 网络要求 能够访问OpenShift Infrastructure Providers以下载安装程序 能访问quay.io以获取安装群集所需的软件包 能访问Red Hat’s software as a service page以获取相关订阅 准备节点 1 bootstrap节点 RHCOS,引导计算机部署集群,在完成部署后该机器可被删除 3 master节点 RHCOS 2 compte节点 RHCOS or RHEL 7.6 部署前准备 外部负载均衡器 配置主机端口 配置DNS 确保网络连接 以下端口必须能被集群中的所有机器访问 端口 说明 2379-2380 etcd server, peer, and metrics ports 6443 Kubernetes API 9000-9999 Host level services, including the node exporter on ports 9100-9101 and the Cluster Version Operator on port 9099. ...
Openshfit上用ConfigMap来自定义Nginx配置
Nginx是最常用的代理软件,也是最常用的WebServer,怎样很方便地在openshift上部署呢?同时又能很方便地对它自定义进行配置?直接使用docker的nginx会有以下问题: 启动时权限问题。默认openshift的应用会使用类似10000100的user_id启用docker,但是官方nginx镜像会使用root启用;还有nginx默认会启用80端口这个也是需要root权限的。 无法动态更新nginx配置。nginx配置在镜像中设置,如果需要更新配置的话,需要重新编译镜像。 应用代码更新。如果用户的代码,如静态代码,版本更新,是否可以不更新镜像,而完成版本的升级? 在Openshift上部署一个nginx应用如何解决以上3个问题。 权限问题 解决办法: 制作专用nginx镜像,1. 更改特殊文件夹的权限为777;2.将默认端口设置为8080default.conf 123456789101112server{ listen 8080; server_name _; location /{ root ...
Openshift+Jenkins+zalenium+HtmlReporter实现自动化测试
上篇介绍了如果在openshift上部署zalenium及python对应用功能进行测试的方法。该篇介绍如何通过Jenkins的Slave容器配合上篇中的zalenium实现自动化功能测试,并生成测试报告。虽然只是一个小例子,但是麻雀虽小,五脏俱全。同时所有的操作及工具都建立在Openshift上。下图为各工具之间的关系: ###具体操作: 启动Jenkins需要添加环境变量JENKINS_JAVA_OVERRIDES => -Dhudson.model.DirectoryBrowserSupport.CSP=该环境变量使得HtmlReporter页面展示正常 Jenkins系统管理->系统设置中创建新的Kubernetes Pod Template基础镜像jenkins-slave-python-centos7:3.10,Dockerfile安装需要的python依赖包 123# DockerfileFROM informaticsmatters/jenkins-slave-python-centos7RUN pip install se...
