不过因为默认的安装配置过于简单,也没有用足生产环境下的性能,所以再此稍作补充。
服务器上可根据以下bat进行mysql定期备份,具体路径可根据实际调整
innodb_dedicated_server 参数在8.03版本中引入,是一个只能在启动时设置的global级参数。此参数设置为ON时,MySQL会根据检测到的内存大小设置innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_method三个参数。有了这个参数我们就不用再写脚本根据内存大小去修改配置文件的这三个参数了。
说明:xfs文件格式,docker overlay2存储设备必须设置 ftype=1 。
强制同步时间
将普通用户添加到docker用户组
/etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver overlay2 "
/etc/sysconfig/docker
OPTIONS=" --log-opt max-size=1M --log-opt max-file=3 --live-restore=true "
设置docker与kubelet的 cgroup driver 为systemd。OpenShift默认安装就是设置的systemd,而社区版的kubelet默认是cgroupfs,需要注意。。
添加文件
管理网:集群间组件通信,Node与Master节点通信网络
业务网:应用间网络通信,pod间网络通信
存储网:与存储设备网络通信
还可以将与外部镜像仓库的网络也考虑进去
每个网络,使用两张网卡做bond,提高网络性能及可用性。
其中管理网与业务网必须互通,否则部分组件服务将不可用。
将私有镜像仓库的CA文件拷贝到镜像仓库所在服务器的/etc/pki/ca-trust/source/anchors/目录下
为OpenShift节点设置默认的登录信息
OpenShift官方推荐规则
通常,它需要保留5%-10%的节点资源来保护节点,越高越安全。
AWS的规则:
内存预留值(AWS):
Reserved memory = 255MiB + 11MiB * MAX_POD_PER_INSTANCE
CPU预留值(AWS):
GKE的规则:
内存预留值(GKE):
CPU预留值(GKE)::
例子:2 vCPU and 7.5GB
Azure的规则:
内存预留值(Azure):
CPU预留值(Azure):
另外:
Google和亚马逊产品的hard eviction threshold 为100MB,而AKS则为750MB。
其中各证书的文件名不要使用与Master组件默认的名字重复,否则会覆盖掉组件间的自签证书。
另外可以自签证书生成长有效期的相关证书。 自签证书步骤如下:
OpenShift 3.11中默念Node的证书有效期为1年,满1年后会自动更新证书。更新证书时,该节点会向集群发送证书签发请求,批准之后才能继续添加到集群。
说明:对于已经部署好的集群可以通过执行ansible-playbook来配置
或者部署时更新以下文件内容(openshift 3.9以上)
roles/openshift_node/defaults/main.yml
将message日志只保留最近三天的日志
如果要设置普通用户可查看/var/log/messages文件,需要在/etc/rsyslog.conf配置的前面添加messages文件可读权限
做为定时任务定期作清理
ROUTER_THREADS 设置为CPU核数
ROUTER_MAX_CONNECTIONS 默认值是20000
设置页面HTML,覆盖/var/lib/haproxy/conf/error-page-503.http文件
补充 : Openshift自定义Router配置
minimum-container-ttl-duration : 容器可以进行垃圾收集的最低时长。 默认值为0,表示不限制。 可以使用单位后缀来指定此设置的值,例如h表示小时,m表示分钟,s表示秒。
maximum-dead-containers-per-container :每个pod容器要保留的实例数。 预设值为1。
maximum-dead-containers :节点中死容器总数的最大值。 默认值为-1,表示无限制。
核心步骤是:
具体操作参考笔者之前的文章: OpenShift部署时如何延长组件证书的有效期
参考文章:
linux journalctl 命令
配置 logrotate 的终极指导
Allocatable memory and CPU in Kubernetes Nodes
OpenShift容器云平台建设之部署前准备
企业级容器云平台建设之功能汇总
书接上文 flask与SQLAlchemy ,我们了解到
这一步的的测试可以看 一个小型的资源管理站
这里与直接上结果。
原flask使用的WSGI是python,但是很明显python作为HTTP解释器是效率低下的。而且,直接运行flask也是非常糟心的。比如集中配置,比如多进程多线程,比如socket通信,比如log管理,比如进程管理
将此文件放置在项目的根目录,并创建文件夹uwsgi
详见 https://www.jianshu.com/p/4c0fb2ed6083
flask+uWSGI已经能实现webserver的功能了,但是更加优秀的weberver还需要nginx的辅助。
Nginx(发音同engine x)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。
还有写拓展处理 主要看服务配置
这里 nginx -s reload 已经完成了服务配置。如果不想配置服务,直接到nginx根目录运行 ./sbin/nginx
这里给大家推荐一个不错的平台:Cloudflare
Cloudflare
在使用之前我们需要更换自己的顶级域名代理商,这一步此处以腾讯云截图:
跳过注册等过程,我们直接进入域名管理界面,看到
然后创建密钥
xxx.pem
xxx.key
再扔到服务器上去。
最后再配置nginx
总结配置flask一般形态的生产环境nginx+uwsgi+flask
回到目录
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)