码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • k8s~RKE的方式升级Rancher集群


    合集 - k8s(46)
    1.k8s~术语解释2018-09-052.docker-swarm建立本地集成开发环境2018-12-103.k8s~k8s里的服务Service2019-12-174.springboot+k8s+抛弃springcloud.eureka2019-12-165.k8s的yaml说明2019-12-076.docker-swarm相关命令和注意事项2018-12-117.k8s~helm的介绍2020-04-078.k8s~kubectl常用命令2020-04-039.k8s~为服务添加sidecar边斗2020-03-2410.k8s~为服务添加ingress的实现2020-01-1911.K8s~为pod添加sidecar进行日志收集2020-01-1112.k8s~部署EFK框架2019-12-3013.k8s学习笔记2019-12-1714.k8s~跨namespace的service相互访问2019-12-1715.keycloak~使用JDBC_PING实现k8s里的高可用2021-08-2816.skywalking的介绍2021-06-0817.docker~添加hosts绑定的方法2021-04-2718.k8s~Endpoints的使用2021-04-1619.jenkins~pipeline~修改文件里的版本2020-11-1820.ELK~fluentd多行日志的收集2020-09-2521.k8s~向etc/hosts里添加内容2020-09-2322.k8s~fluentd的configmap设置es索引前缀2020-05-2023.springcloud~服务发现之k8s服务2020-05-2024.k8s~helm镜像版本永远不要用latest2020-04-1825.k8s~helm的charts里的模版介绍deploymeny_service_ingress2020-04-1026.k8s~helm里的yaml的介绍2020-04-1027.k8s~helm构建一个应用2020-04-1028.k8s~直接部署istio2020-04-0829.k8s~helm3更方便的部署2020-04-0730.k8s~helm的安装过程2020-04-0731.k8s~Ingress转发出现502的问题03-2732.keycloak~LB到Ingress再到K8s的路径问题02-2333.k8s~ingress限流机制02-2334.k8s~ingress设置文件传输大小限制02-1335.k8s~fluentd从kafka到elk01-2936.k8s~云负载转发ingress解析2022-04-0637.springboot~容器化环境获取真实IP地址2022-01-2038.k8s~service负载到pod的状态保持2021-12-0939.k8s~Endpoints的使用之负载均衡2021-12-0840.k8s~通过探针实现服务的平滑部署2021-11-3041.rancher~升级v2.6.3之后业务集群无法连rancher的解决方法2022-02-2242.rancher~rancherv2.3.3升级到rancherv2.6.32022-03-1543.在chatGPT的帮助下成功从Rancher中删除无效的集群05-12
    44.k8s~RKE的方式升级Rancher集群06-08
    45.k8s~volumeMounts资源的限制与作用06-1946.k8s~节点的亲和性07-11
    收起

    kubectl安装

    在主机或者远程访问的笔记本上安装kubectl命令行工具

    rancher-cluster.yml(RKE配置文件)
    

    通过RKE创建kubernetes集群,需要预先设置rancher-cluster.yml配置文件,通过这个配置文件安装kubernetes集群,同时可以指定kubernetes的版本。

    RKE安装kubernetes集群后,会在RKE二进制文件相同目录下生成kube_config_rancher-cluster.yml文件,复制该配置文件到~/.kube/目录,这个文件在升级集群时会用的到。

    查看rke支持的k8s版本

    [root@rancher home]# rke config --list-version -all
    v1.16.2-rancher1-1
    v1.14.8-rancher1-1
    v1.15.5-rancher1-2
    
    

    如果版本太老,是无法安装新版rancher的,还需要先升级RKE,下载rkev1.3.8版本,对基础集群的k8s进行升级

     ./rke_linux-amd64-1.3.8  up --config=./rke2019/rancher-cluster.yml
    

    升级之后,可以在基础集群上看一下版本

    kubectl get nodes
    NAME            STATUS   ROLES                      AGE   VERSION
    192.168.0.204   Ready    controlplane,etcd,worker   11h   v1.18.20
    

    升级步骤

    • 在安装了kubectl命令行工具的电脑上打开终端

    • 切换路径到RKE二进制文件所在目录,确认rancher-cluster.yml在同一路径下

    一 升级前的准备工作

    1.1 x509证书问题的产生原因

    • x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"
      这是因为 Rancher 把 v2.5.10 以上,或 2.6.x 之后将 go 版本从 1.14 提升到了 1.16。而且,go 1.15 版本开始废弃 CommonName,推荐使用 SAN 证书,参考:https://golang.org/doc/go1.15#commonname 。 如果你的自签名证书中不包含 SANs,就会出现上面的报错。
    • 要解决这个问题,有两种方案:
      • 方案 1:替换 Rancher HA 证书#
        使用一键生成 ssl 自签名证书脚本 重新生成证书,然后参考无需重新搭建集群,轻松替换证书替换 Rancher HA 的证书。
      • 方案 2:添加环境变量 GODEBUG=x509ignoreCN=0#
        • 更新 Rancher Server ,添加环境变量GODEBUG=x509ignoreCN=0
        • 升级业务集群Rancher-agnet 通过extraEnv设置环境变量GODEBUG=x509ignoreCN=0

    1.2 x509证书问题的解决

    1.2.1 生成集群集群

    kubectl set env deployment/rancher  -n cattle-system GODEBUG="x509ignoreCN=0"
    

    1.2.2 业务集群升级

    export GODEBUG=x509ignoreCN=0
    kubectl set env deployment/cattle-cluster-agent  -n cattle-system GODEBUG="x509ignoreCN=0"
    kubectl set env daemonset/cattle-node-agent  -n cattle-system GODEBUG="x509ignoreCN=0"
    

    二 创建ETCD快照备份

    替换为您喜欢的快照名称(例如upgrade.db),默认位置:/opt/rke/etcd-snapshots/,注意需要修改这个目录下的文件权限,否则vonechain用户无权访问它,可以返回root账号,进行以chown vonechain:root /opt/rke/etcd-snapshots

    # Linux
    rke etcd snapshot-save --name 20220310.bak --config rancher-cluster.yml
    
    # 恢复
    rke etcd snapshot-restore  --name 20220222.bak  --config rancher-cluster.yml
    #  restore: 指定用于恢复的快照文件
    #  -data-dir:恢复到哪个目录
    
    

    RKE获取每个etcd节点上的运行快照,保存快照文件当前到etcd节点的/opt/rke/etcd-snapshots目录下.

    三 升级RKE对应的k8s

    如果原来是rancherv2.3.3,对应的rke版本比较低,只能先升级到k8s v1.18.20-rancher1-3;再高的版本,其它业务集群的k8s无法平滑过渡
    rancher-cluster.yml文件下如

    nodes:
      - address: 192.168.0.204
        internal_address: 192.168.0.204
        user: vonechain
        role: [controlplane,worker,etcd]
    kubernetes_version: "v1.18.20-rancher1-3"
    services:
        etcd:
          snapshot: true
          creation: 6h
          retention: 24h
    
    

    四 Rancher基础集群升级

    输入以下命令进行升级,注意升级的代码根据版本的不同,可以有所不同:

    # rancher v2.5.8的升级到2.6.3如下
    kubectl --kubeconfig=kube_config_rancher-cluster.yml set image deployment/rancher rancher=rancher/rancher:v2.6.3 -n cattle-system
    

    替换为想要升级到的版本,可用的镜像版本可查阅DockerHub。

    说明:set image用来更新镜像,上面的代码更新Deployment类型下面的rancher部署项目,容器是rancher,更新一个新的镜像rancher/rancher:v2.6.3 。

    五 业务集群的升级【可以不升级】

    /etc/kubernetes/ssl/kubecfg-kube-node.yaml这个是rancher为当前节点生产的k8s集群文件

    kubectl set image deployment/cattle-cluster-agent cluster-register=rancher/rancher-agent:v2.6.3 -n cattle-system 
    kubectl set image DaemonSet/cattle-node-agent agent=rancher/rancher-agent:v2.6.3 -n cattle-system
    

    升级之后,业务集群会自动下载对应的rancher镜像,等待高版本镜像启动即可

    六 业务集群的k8s版本升级

    之前是1.17,现在想升级到1.20,1.17在仪表盘里没有显示cpu和内存的使用情况,升级到1.20之后,在仪表表里,就可以看到实时的CPU和内存使用情况了,这个还是挺必要的。

    • 升级方法

    image

    • 升级后可查看cpu和内存

    image

  • 相关阅读:
    进程,子进程,线程,协程
    [LCT刷题] P1501 [国家集训队]Tree II
    vscode在ubuntu调试
    JavaScript知识系列(6)每天10个小知识点
    汽车蓄电池
    C#使用西门子S7 协议读写PLC DB块
    jenkins全局配置问题
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程
    设计模式:备忘录模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
    python内置函数sorted()
  • 原文地址:https://www.cnblogs.com/lori/p/17467086.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号