• kubernates 集群实战-安装K3s集群


    安装K3s集群

    在这里插入图片描述
    K3S是一种轻量级的Kubernetes发行版,安装和运行只需要一个二进制文件。相比之下,K8S需要更多的步骤和资源来安装和部署,例如设置etcd集群、安装控制平面组件、加入工作节点等。这使得K3S更适合在低资源的设备上运行,如树莓派或边缘计算节点。另一方面,K8S适合在高性能的服务器或云环境中运行。

    K3S和K8S都是Kubernetes的容器编排工具,它们都提供了一些核心功能,如调度、服务发现、负载均衡、网络策略等。然而,K3S相对于K8S来说,删除了一些不常用或不必要的功能,如云控制器管理器、存储类、动态卷供应等。同时,K3S还内置了一些额外的组件,如Traefik、Flannel、CoreDNS等,以简化配置和管理。而K8S则提供了Kubernetes的完整功能集,并且具有丰富的扩展机制,如自定义资源定义(CRD)、操作符(Operator)、服务网格(Service Mesh)等。这些扩展机制可以通过插件或第三方工具来实现更多的功能和场景。

    K3S具有轻量化和简化的设计,能够快速启动和运行,同时占用内存和磁盘空间也较少。K3S采用sqlite作为默认的数据存储后端,以替代etcd,从而降低了复杂度和开销;

    K3S与Kubernetes的兼容性很高,可以与许多兼容Kubernetes的应用和工具一起使用,如Helm、Istio、Prometheus等。但是,K3S也有其限制,它删除了一些功能或组件,因此可能无法支持一些特定的应用或场景,例如使用存储类或动态卷供应的应用。与之相比,K8S是一个完全兼容Kubernetes的容器编排系统,它拥有庞大的生态系统和社区支持,可以提供各种各样的解决方案和最佳实践。

    环境准备

    前置环境必须有三台虚拟服务器,彼此网络互通; 参考文章: kubernates 集群实战-概念

    初始化服务器(  在每台云服务器上执行)
    #检查是否  安装开放源 wget命令工具;
    #  永久关闭防火墙
       systemctl stop firewalld
       systemctl disable firewalld
     # 永久关闭selinux
       sed -i 's/enforcing/disabled/' /etc/selinux/config 
     # 永久关闭swap
       swapoff -a && sysctl -w vm.swappiness=0
       sed -ri 's/.*swap.*/#&/' /etc/fstab 
     # 根据规划设置主机名
        hostnamectl set-hostname 
    # 使用 hostname 命令查看是否设置成功
    
    # 在master添加hosts (注意只在master 执行)
    cat >> /etc/hosts << EOF
    10.0.4.16  k3s-master
    10.0.4.15  k3s-node1
    10.0.4.11  k3s-node2
    EOF
      
    
    # 将桥接的IPv4流量传递到iptables的链
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    EOF
     # 生效
    sysctl --system
    
    # 时间同步 以下是centos 7 的同步方式
    yum install ntpdate -y
    ntpdate time.windows.com
    # 时间同步 在CentOS8.0中默认不再支持ntp软件包,使用的是chrony。
    systemctl stop chronyd       #停止chronyd服务
    systemctl start chronyd      #开始chronyd服务
    systemctl restart chronyd    #重启chronyd服务
    systemctl status chronyd     #查看chronyd服务状态
    systemctl enable chronyd     #开机启动chronyd服务
    systemctl disable chronyd    #禁止开机启动chronyd服务
    
    chronyc sources –v      #查看时间同步源,查看时间同步进度
        #结果解释: *说明时间同步完成,如果为?说明不成功,检查防火墙再看看chronyd有没有重启。
    chronyc sourcestats -v        #查看时间同步源状态:
    timedatectl set-local-rtc 0  #硬件时间默认为UTC:
    timedatectl set-ntp yes       #启用NTP时间同步:
    chronyc tracking              #校准时间服务器:
    
    网上设置方法:https://www.ecs086.com/news?id=210
    
    查看命令 timedatectl
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    安装 docker

    curl https://releases.rancher.com/install-docker/19.03.sh | sh
    
    $ systemctl enable docker && systemctl start docker
    $ docker --version
    
    $ cat > /etc/docker/daemon.json << EOF
    {
      "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    EOF
    
    $ systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    主节点安装

    curl -sfL https://get.k3s.io | sh -s - server --docker
    
    配置
    vim /etc/systemd/system/multi-user.target.wants/k3s.service
    在这里我们需要修改ExecStart的值,将其修改为:
    /usr/local/bin/k3s server --docker --no-deploy traefik
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    work 节点

    curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://10.0.4.16:6443 K3S_TOKEN=K1017dfeeb18a903c5e70d576c5c7e556c0bc83dfb48fddb299284dc45aaa248bd4::server:25771cc1cd17849ac3c071dcbd62bfba INSTALL_K3S_EXEC="--node-ip 10.0.4.15" sh -
    
    • 1
    解释:token 获取在master 执行
    cat /var/lib/rancher/k3s/server/node-token
    
    • 1
    • 2

    node-ip 为 当前work 节点ip
    K3S_URL=https://10.0.4.16:6443 : 表示 master 节点ip

    验证环境

    在 master 节点上执行

    kubectl get node 
    
    • 1
  • 相关阅读:
    【oceanbase】安装ocp,ocp部署oceanbase
    基于Open3D的点云处理18-重建系统
    log4j2原理分析及漏洞复现CVE-2021-44228
    element安装指定版本ui
    Docker-Compose安装、卸载、使用详解
    【AutoSAR CAN】05 - 如何使用Davinci Configurator Pro工具配置CAN硬件对象(CanHardwareObject)
    CISP-PTE真题演示
    微信小程序开发小程序论文管理系统+后台管理系统
    锂离子电池充电的系统抖动问题解决方案
    ASP.NET Core 3 高级编程(第8版) 学习笔记 03
  • 原文地址:https://blog.csdn.net/zy_jun/article/details/134020121