十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在这篇文章中,分享使用kubernetes上的一些个人看法和见解,笔者2019年参加工作,那时候kubernetes还挺火,不过对于南京这个”一线“城市来说,还是没有普及开来。不过幸运的是第一份工作就要用k8s,配合着CI、CD,遵循DevOps理念让此项目团队从中获益匪浅。虽然Kubernetes已经成为行业标准,但是不同的公司在使用上可以说是千奇百怪,包括现在基于kubernetes开发的容器平台,一千个公司有一千个kuberenetes集群,这些问题除了提升自身硬实力之外,也要树立一些做事的规范。
基础设施标准目前云技术已经很普遍了,大家已经不太关心底层的基础设施了,比如服务器型号、维保、交换机配置、机柜的信息等
1、ECS型号对于ECS来说,很多时候并不关心型号问题,但是由于公司需要考虑到价格因素,需要够买性价比高的机器。这里需要说的是共享性的机器有可能会被别的服务器影响,如果是你负责,到时候出现不可描述的问题,你说由于买的服务器是共享型?除了规避一些可能出现的问题,最好的是实例统一。
2、系统版本对于使用kubernetes来说,不用太关注底层使用什么操作系统,只要你能跑起来容器就行,当然选择你熟悉的系统,比如你熟悉CentOS,那就选择CentOS好了,不要去用什么Debian、Ubuntu等,虽然它们之间的变化不是很大
3、内核版本这里需要单独说一下内核版本,因为Kuberenetes内核的要求比较高,像Centos都需要升级内核满足需求,升级时选择稳定的版本,确保集群内核版本一致。
4、安全组配置 5、网络划分 应用标准 1、打包方式由于在给应用做CI的时候都会涉及到应用的打包,如果应用统一打包方式,那么我们是不是只需要一个CI模版了,比如规定java统一用gradle还是maven打包,那我在做CI的时候基本都不需要询问开发人员如何打包了。
2、应用目录如果目录不规范,找目录会浪费大量的时间,还有后续大规模操作目录或文件也不方便,比如我们对镜像的目录做了以下规范:
- 部署目录 /app
- 缓存目录 /app/cache
- 日志目录 /app/logs
- 临时目录 /tmp
3、应用日志日志不规范,运维两行泪
用日志定义好统一的格式以及输出方式,最好能够输出到控制台,这样在做日志收集的时候方便快捷
4、运行参数应用的运行时参数配置,比如运行端口、Java的JVM参数配置,以及新生代、老生代、永生代的堆内存大小配置等
比如应用统一使用端口8080,JVM参数参考如下配置:
-server
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-Xms1G -Xmx1G
-XX:MetaspaceSize=128m JAVA_MAXMETA_SIZE="512m"
-XX:LargePageSizeInBytes=128m
-XX:+ParallelRefProcEnabled
-XX:+PrintAdaptiveSizePolicy
-XX:+UseFastAccessorMethods
-XX:+TieredCompilation
-XX:+ExplicitGCInvokesConcurrent
-XX:AutoBoxCacheMax=20000
-XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap
-XX:+PerfDisableSharedMem
-verbosegc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/app/logs/gc.log"
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs/oom-`date +%Y%m%d%H%M%S`.hprof"
当然,这只是一个样例,不是标准,具体的优化或者配置是根据具体情况进行微调的。
制品标准Kubernetes中的应用制品都是容器镜像,所以这里说的就是容器的制作一些建议。
(1)选择标准并且统一的母镜像,这样更便于升级、更新、漏洞修复。
(2)镜像的层级越少越好
(3)应用使用非root用户运行,不要开启特权模式
(4)不要安装过多的命令软件,在很多情况下,并不需要
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧