OpenShift生产集群物理机部署与虚拟机部署各自优缺点
OpenShift是物理机部署,还是虚拟机部署?这是企业在做容器平台架构选型时必须考虑的问题。尤其是大企业,有机器,有业务。今天我们就来列一列物理机与虚拟机部署各自的优缺点。
物理机部署
优点
性能好,无虚拟化层性能开销
小业务集群,节点少
配置高能够支持更大规模的容器数量
License成本更低
架构复杂度低(PaaS)
需要额外准备LB与存储
缺点
运维复杂度高
集群扩容周期长
如果出现故障,恢复周期长,需要及时去机房诊断修复
一台主机出现故障,影响业务范围更广
合规限制,需要更高要求的安全与隐私控制
虚拟机部署
优点
灵活部署、配置、维护简单
快速扩容
能与IaaS资源混合使用(LB、存储等)
一台虚拟机出现故障,影响业务范围小
虚拟机技术成熟,有热迁移技术,恢复快
IaaS高可用+PaaS高可用,两层保障
虚拟机支持虚拟快照,方便做主机回滚,集群可靠怀提升
IaaS目前已经有成熟的合规方案,在其上构建PaaS可以更方便地满足合规要求
缺点
性能较差(网络、计算等)
架构复杂度提升(IaaS + Paas)
配置较低,承载的容器容量更小(节点更多)
需要更多L ...
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-group ...
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节点1$ oc get ...
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 to r ...
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_location r ...
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-email= ...
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日志归档
N ...
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"]}'
为项目指定静态出口IP1$ 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组件,证书最短有效期为两年,两年后需要执行证书更新操作 ...