使用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

原文地址:https://www.cnblogs.com/crazylight/p/13629898.html