美文网首页
kubernetes 流程部署相关的坑

kubernetes 流程部署相关的坑

作者: akka9 | 来源:发表于2019-11-27 15:52 被阅读0次
    1. 容器镜像名称只允许用小写,tag 大小写均可
      kubernetes 的 namespace 和 deployments name 也是都用小写

    2. 代码和发布的自动对应关系解决方案:
      git 项目的 GroupName/ProjeceName ==> 容器镜像全部小写的 groupname/projectname
      git 项目的 GroupName ==> kubernetes 下全部小写的 groupname 作为 namespace
      git 项目的 ProjeceName ==> kubernetes 下全部小写的 projectname 作为 deployment name
      如此通过自动化的映射,可以极大的减少管理成本,提高发布效率。

    3. 项目发布的的 yaml 文件中,是否写创建 namespace ?
      最好不要。
      如果把创建 namespace 写到项目发布的yaml中,当删除这个项目时,
      namespace 连同该命名空间下其他的部署项目也一并删除,这个结果不一定是我们需要的。

    4. java 项目建议由 war 包改为 jar 包部署
      war 包项目的运行,需要依赖 tomcat jetty 等容器,经常会有一些个性化的要求,比如 URIEncoding
      第三方包依赖,等等,增加工程化部署的复杂程度。
      因此建议将war包的项目改造成 springboot 或者内嵌tomcat 的方式来部署。

    5. helm 生成的 chart 模板把里面没有 namespace
      解决办法: 在模板中适当位置加入 namespace: {{ .Release.Namespace }}

    6. app容器的操作系统的选择
      一句话概括:在企业部署环境中,基础镜像尽量不选择 alipine,尽管他看起来小而美。
      原因:

    • 代码兼容性:php nodejs python golang 遇到的兼容性问题都不好解决
    • 性能: musl 的性能比 glibc 还是有明显的差异
      因此建议尽量选择 ubuntu、debian、centos 这些常规系统作为基础镜像。
    1. flannel 0.11 部署在 k8s 1.17 起不来
      原因: 需要在 yaml 中指定 "cniVersion": "0.2.0", , 添加后才可正常启动
      https://github.com/coreos/flannel/pull/1174/commits/701c2e8749714022758d5360fbe627005901349c

    2. calico 3.11 部署在 k8s 1.17 起不来
      报错:error=listen tcp a.b.c.d:9098: bind: cannot assign requested address
      原因:在宿主机上,使用 nslookup localhost 解析到了不存在该主机的地址上了。
      解决:使用 nslookup localhost 解析到了 localhost.domain.com 的内部域名上了,
      增加了该内部域名的解析,解析到 127.0.0.1。
      或者在 yaml 文件中,添加环境变量 TYPHA_HEALTHHOST=127.0.0.1
      https://github.com/projectcalico/typha/issues/334

    相关文章

      网友评论

          本文标题:kubernetes 流程部署相关的坑

          本文链接:https://www.haomeiwen.com/subject/miipwctx.html