zoukankan      html  css  js  c++  java
  • 使用rancher发布k8s主要流程记录

                                              K8s 最佳实践整理

    文档说明:

           此文档只介绍最简单的将一个项目用rancher部署到k8s集群上的主要流程,暂时没有对docker、rancher、k8s的具体概念做深入探讨,讲解。这些知识可以另外起文档或者专题专门研究。整理了几个关键节点的相对重要的几个工程化实践。

    1、 集群初始化完成环境搭建(这些步骤在rancher中)。

    我做了文字版的说明,上面地址有图片,更加直观;

    1.1   集群创建

    跟运维确认是用rancher创建的;具体为:

    AddCluster -> From Existing Nodes

    1.2   镜像数据仓库准备

      Resources->Secrets->Registry Credentials(Address-custom: harbor的目录)

    1.3   Jekins目录设置

    Resources -> Pipelines -> Config Repositories

    需要在Git仓库中提前配置号权限;

    1.4   项目创建

    Eg: gmg

    1.5   命名空间

    Eg: gmg

    1.6   ConfigMap的创建

    2、   日常项目迁移和维护操作步骤。

    2.1 Dockfile文件自动生成后,替换默认的基本镜像地址为:

    FROM harbor.XXX.com/commonality/dotnet-core-aspnet:3.1-buster-slim AS base

    WORKDIR /app

    EXPOSE 80

     

    FROM harbor.XXX.com/commonality/dotnet-core-sdk:3.1-buster AS build

    WORKDIR /src

                (其他扩充配置可以修改Dockerfile文件)

    2.2 在项目最外层添加.rancher-pipeline.yml文件, 比较重要的一个资源配置为

      - applyYamlConfig:

          path: ./bjbmp/yamls/bjbmp.service.${CICD_GIT_BRANCH}.yaml

    注意:

    i)       如果branch分支配置不一样(比如正式、测试对应不同的域名的使用场景),可以考虑用着方法区分,可能有其他方式,暂时还没有研究,如果有更好的方式可以考虑使用;

    ii)      这个地方的applyYamlConfig可以使用多个,比如ingress、service,deployment等指定不同的文件;

    iii)     文件路径可以自己指定,放到项目中放一个yalms文件夹是一个比较好的选择;

    2.3 平时维护时,只需要修改deployment.yaml文件,普通程序开发只能修改deployment,这样保证ingress等不会被轻易修改到;(降低了因为所有配置放到一个文件中,因为修改一个配置导致其他受影响的风险)

    3、   使用过程中的常用技巧

    3.1 仓库地址选择:测试库、正式库分开保存 VS  只用一个库

                         建议: 只用一个库,会省去很多麻烦 

            建议分开, 如果同一个,随着数量的增多,会使harbor库变得原来越大,备份越来越慢。 而正式的数量比较少,测试的经常发布,数量会非常庞大,尤其是项目多的时候;

    3.2  用master  develop区分

    4、   常碰到的问题记录

           4.1 yalm文件

    a) name后面要跟空格

    b) harbor库, service的名字等,都需要用小写子母;

    c) 文件夹的路径,区分大小写

    4.2 部署方面

           a) 尽量直接编写yalm文件,代替直接操作rancher来操作k8s的配置;

        b) Ingress文件要统一管理;

       不能根据when,区分正式,测试的host  unknown field "when" in io.k8s.api.extensions.v1beta1.IngressRule

      解决方案: 两个域名都注册一下;(测试ing)

    ---------------------------补充ing

  • 相关阅读:
    利用kettle中的JS来完成ETL数据校验
    spring cloud学习地址
    centos7 卸载 gitlab
    为什么WEB-INF外的jsp无法根据cookie享受国际化
    改变maven父子项目视图为树状
    maven profiles、filters、resources学习笔记 及 常用 plugin demo
    Tomcat 签名认证配置简例
    CentOS 开机启动
    Tomcat 关闭时报错
    比较全的log4j示例
  • 原文地址:https://www.cnblogs.com/crazylight/p/13629898.html
Copyright © 2011-2022 走看看