• Rancher(V2.6.3)安装K8s教程


    Rancher(V2.6.3)安装K8s教程

    一,安装前环境准备:

    1,升级Linux服务器内核

    Ubuntu20.04.4:
    #查看当前内核版本
    uname -rs
    

    image-20230403201337998

    #查看软件库中可下载的内核
    sudo apt list | grep linux-generic*
    

    image-20230403201449239

    如果已经是最新的就不必更新

    #下载最新的内核(具体版本以软件库中为准)
    sudo apt-get install linux-generic-hwe-20.04-edge/focal-updates
    

    这里等它更新完毕后需要重启服务器,所以等下一步完成后一并重启检测

    2,修改hostname

    vim /etc/hostname 即可设置全限定域名,删除原有内容,输入完整的全限定域名保存退出即可,例如k8s-master。

    修改后依然要重启才能生效

    3,hosts设置

    vim /etc/hosts 即可设置hosts。K8S集群一般包含多台计算机,hosts的内容应该包含集群内的所有机器。如:

    image-20230403213004477

    在安装 Kubernetes(K8s)之前,配置 /etc/hosts 文件可以解决 Kubernetes 集群中的 DNS 问题。在 Kubernetes 集群中,DNS 负责将服务名称解析为对应的 IP 地址。在默认情况下,Kubernetes 使用一个名为 kube-dns 的组件作为集群的 DNS 服务器。这个组件通常会被部署在 Kubernetes 集群内部,并由 Kubernetes 自动配置其 DNS 解析规则。

    在某些情况下,kube-dns 可能无法识别您的服务名称,从而导致服务无法被正确解析。这种情况通常发生在您的本地网络配置中存在一些问题,例如您的网络 DNS 服务器无法识别 Kubernetes 的服务名称。为了解决这个问题,您可以在您的主机上手动配置一个 DNS 解析规则,以便将 Kubernetes 的服务名称解析为正确的 IP 地址。

    配置 /etc/hosts 文件是一种简单有效的方法,它可以将一个服务名称映射到一个 IP 地址。这样,在您的主机上执行 ping my-service 命令时,就会将该服务名称解析为对应的IP 地址,从而成功地访问该服务。

    需要注意的是,对 /etc/hosts 文件的修改只会对当前主机生效。如果要在多台主机上部署 Kubernetes,需要在每台主机上都手动修改 /etc/hosts 文件,以便正确地解析 Kubernetes 的服务名称。另外,由于 /etc/hosts 文件通常是一个受保护的系统文件,因此在修改之前,请确保已经有相应的权限。

    4,关闭防火墙

    #uwf:
    #开启防火墙
    ufw enable
    #关闭防火墙
    ufw disable
    
    #firewall
    # 关闭防火墙
    systemctl stop firewalld
    # 关闭防火墙开机启动
    systemctl disable firewalld
    

    5,关闭selinux

    Ubuntu20.04:
    #查看SELinux状态
    /usr/sbin/sestatus -v      
    #如果SELinux status参数为enabled即为开启状态
    

    SELinux status: enabled

    #也可以用这个命令
    getenforce 
    

    image-20230403213912606

    临时关闭(不用重启机器):

    #设置SELinux 成为permissive模式
    setenforce 0
    #设置SELinux 成为enforcing模式
    setenforce 1 
    

    修改配置文件需要重启机器:

    修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled。

    vi /etc/selinux/config
    

    image-20230403214353318

    重启机器即可

    在安装 Rancher 和 Kubernetes 之前关闭 SELinux 是为了解决一些安全限制问题。SELinux(Security-Enhanced Linux)是一个 Linux 内核安全模块,用于限制程序对系统资源的访问和操作。它为 Linux 提供了更高的安全性和完整性,但有时候也会导致一些问题。

    在 Rancher 和 Kubernetes 的安装过程中,可能会出现某些 SELinux 相关的问题,例如:

    • Rancher 系统初始化时可能会出现 SELinux 安全策略的限制,从而导致初始化失败;
    • Kubernetes 集群的某些组件可能会试图访问一些被 SELinux 限制的系统资源,从而导致组件无法正常启动。

    为了解决这些问题,一种简单的方法是在安装 Rancher 和 Kubernetes 之前暂时关闭 SELinux。关闭 SELinux 可以暂时解除对系统资源的限制,从而使 Rancher 和 Kubernetes 的安装和初始化过程更容易成功。

    6,关闭swap

    Ubuntu20.04:

    编辑/etc/fstab

    vim /etc/fstab
    

    image-20230403214910666

    找到如下行并把它注释掉,重启系统并验证

    sudo swapon --show 
    

    如果已经关闭那么该命令不会有输出

    如图为没关闭的:

    image-20230403215240431

    下图是已关闭的:

    image-20230403215315571

    7,安装Docker,版本选择为20.10.13,契合Rancher版本

    Ubuntu20.04安装教程

    Centos安装教程

    二,安装Rancher

    1,Docker安装Rancher

    只需要其中一台机器安装Rancher,所以在机器中任选一台进行安装。
    安装Rancher只需要执行如下命令:

    docker run -d --restart=unless-stopped  --name rancher -p 8080:80 -p 8443:443 --privileged rancher/rancher:v2.6.3
    

    然后打印日志查看Rancher是否运行成功,中途会有很多error,但是不必管它。

    待日志结束后出现一下几行就代表运行成功,可以访问Rancher了

    image-20230403222127047

    浏览器输入https://[你的IP]:8443访问Rancher

    访问链接的时候会出现

    image-20230403222543495

    点高级,无视风险继续访问。

    image-20230403222456202

    2,配置Rancher

    进入Rancher后会出现如下界面,根据操作提示完成即可。

    image-20230403222747262

    docker logs    2>&1 | grep "Bootstrap Password:"
    

    首先是从Rancher容器获得初始密码

    image-20230403222853132

    输入密码点击登录,然后创建新密码

    image-20230403222941337

    根据密码要求重置密码后,同意下方的使用要求,点击Continue。

    进入主页面后,点击左上方,切换语言为中文

    image-20230403223202516

    下面显示有一个local集群就证明Rancher已经安装成功了

    image-20230403223256344

    三,Rancher搭建集群

    如上图,点击创建集群

    image-20230403230423203

    点击自定义:

    image-20230403232806133

    给集群写好名字,选择k8s版本,这里选的是V1.19.16。

    image-20230403232847481

    点击下一步后,进入添加主机命令页面。点选Etcd,Control Plane,Woker三个选项,然后复制下方的命令,到master节点执行。

    image-20230403233626026

    点击下一步后,进入添加主机命令页面。点选Etcd,Control Plane,Woker三个选项,然后复制下方的命令,到master节点执行。

    image-20230403232914623

    在执行的过程中需要等待很长的时间,中途在Rancher界面可能会看到报错信息,类似于以下两个。这是安装过程中会出现的。

    Cluster must have at least one etcd plane host: please specify one or more etcd in cluster config

    Cluster must have at least one etcd plane host: please specify one or more etcd in cluster config

    判断集群是否安装成功只需要看日志。首先点击管理集群,点击自己刚创建的集群,点击Provisioning Log。

    image-20230403234736874

    image-20230403234946713

    安装完成后会有如下日志。

    四,在master节点上安装安装和配置kubectl工具

    1,安装

    在Ubuntu上可以通过以下命令安装。

    snap install kubectl
    

    另一种安装方法,在linux机器上执行以下命令下载:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
    #授权
    chmod +x kubectl
    #将kubectl移动到可以全局访问的目录下
    mv ./kubectl /usr/local/bin/
    
    2,配置参数

    在浏览集群中,点击刚创建好的集群

    image-20230404000958360

    点击按钮复制配置文件

    image-20230404001055292

    首先创建目录,复制yaml配置文件的内容,添加到config中然后保存:wq

    mkdir ~/.kube
    cd ~/.kube
    vi config
    

    然后执行命令就能看到我们刚创建的集群信息了

    kubectl config get-contexts
    

    image-20230404001535540


    __EOF__

  • 本文作者: 山有扶苏
  • 本文链接: https://www.cnblogs.com/blogof-fusu/p/17285042.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    vue的ref使用技巧☞重置表单
    lru_cache python
    Android 优化 - 磁盘缓存DiskLruCache
    机器学习笔记之指数族分布——最大熵原理与softmax激活函数的关系
    Android C++系列:Linux进程间关系
    从 Windows 切换到 Mac,这些不能错过的 Tips
    【C++】近期知识点杂记(getline、cin、nullptr与C语言风格的字符串、stoi函数、new)
    Qt中定时器的3种实现方法
    【面试普通人VS高手系列】说一说Mybatis里面的缓存机制
    初学ABB机器人与库卡机器人时,常常碰到的问答集锦
  • 原文地址:https://www.cnblogs.com/blogof-fusu/p/17285042.html