OpenShift灾备的方案及步骤
https://docs.openshift.com/container-platform/3.11/admin_guide/assembly_restoring-cluster.htmlhttps://docs.openshift.com/container-platform/3.11/admin_guide/assembly_replace-master-host.htmlhttps://docs.openshift.com/container-platform/3.11/admin_guide/assembly_restore-etcd-quorum.htmlhttps://docs.openshift.com/container-platform/3.11/admin_guide/assembly_replace-etcd-member.html
OpenShift生产集群物理机部署与虚拟机部署各自优缺点
OpenShift是物理机部署,还是虚拟机部署?这是企业在做容器平台架构选型时必须考虑的问题。尤其是大企业,有机器,有业务。今天我们就来列一列物理机与虚拟机部署各自的优缺点。 物理机部署 优点 性能好,无虚拟化层性能开销 小业务集群,节点少 配置高能够支持更大规模的容器数量 License成本更低 架构复杂度低(PaaS) 需要额外准备LB与存储 缺点 运维复杂度高 集群扩容周期长 如果出现故障,恢复周期长,需要及时去机房诊断修复 一台主机出现故障,影响业务范围更广 合规限制,需要更高要求的安全与隐私控制 虚拟机部署 优点 灵活部署、配置、维护简单 快速扩容 能与IaaS资源混合使用(LB、存储等) 一台虚拟机出现故障,影响业务范围小 虚拟机技术成熟,有热迁移技术,恢复快 IaaS高可用+PaaS高可用,两层保障 虚拟机支持虚拟快照,方便做主机回滚,集群可靠怀提升 IaaS目前已经有成熟的合规方案,在其上构建PaaS可以更方便地满足合规要求 缺点 性能较差(网络、计算等) 架构复杂度提升(IaaS + Paas) 配置较低,承载的容器容量更小(节点更多) 需要...
OpenShift用户与组的管理功能如何在Kubernetes上实现
OpenShift中有用户及组的概念,并且提供了User与Group资源类型,可以非常方便地为OpenShift集群创建用户,创建组,以组给用户进行组管理,并授权。这也大大方便了集群账号的管理与权限的控制。 12345[openshift@master01 ~] oc create user dev-user # 创建用户dev-user[openshift@master01 ~] oc adm groups new my-group # 创建组my-group[openshift@master01 ~] oc adm groups new my-group dev-user # 创建组my-group,并添加dev-user到该组[openshift@master01 ~] oc adm groups add-users my-group dev-user # 为组my-group添加用户dev-user[openshift@master01 ~] oc adm groups remove-users my-group dev-user # 将用户dev-user从my-gr...
OpenShift管理节点Master与计算节点Node的配置说明
配置文件Master节点的配置文件地址:/etc/origin/master/master-config.yamlNode节点的配置文件在:openshift-node项目下的configmap中。OpenShift集群的配置信息都在这两个文件中,包括有覆盖默认插件,连接到etcd,自动创建服务帐户,构建映像名称,自定义项目请求,配置卷插件等等。 参考文章Master and Node Configuration
OpenShift自带的日志搜索引擎ES服务的扩容
有以下两种扩容方式: 存储扩容 节点扩容 存储扩容 查看集群的状态 1$ oc exec $es-pod-name -c elasticsearch -- health 停止ES节点分片平衡 1$ oc exec $es-pod-name -c elasticsearch -- curl --cert /etc/elasticsearch/secret/admin-cert --key /etc/elasticsearch/secret/admin-key --cacert /etc/elasticsearch/secret/admin-ca -XPUT https://localhost:9200/_cluster/settings -d '{"transient": {"cluster.routing.allocation.enable":"none"}}' 为每个ES节点的DC执行以下操作3.1 获取需要暂停的ES pod所在的Node节点 ...
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容器平...
