本地k8s搭建

引言

k8s学习中,我们一直用的是本地docker中提供的k8s组件。这种方式其实就是一个单节点的k8s,只能在学习中使用,一般线上环境我们要么选择云商的k8s服务,要么多机器自己搭建k8s集群。这里,我们本地学习下k8s的搭建过程。本次搭建过程使用rancher搭建,简单快捷(对比二进制搭建来说)。

准备

  1. 准备三台主机用于部署k8s(node1:10.15.0.11, node2:10.15.0.12,node3:10.15.0.13),准备一台主机用于部署rancher(10.15.0.10),总计四台服务器

    注意:

    我启动的是centos虚拟机

    修改ip方法:

    cd /etc/sysconfig/network-scripts/
    vi ifcfg-ens160 #修改对应ip为你想要的ip地址,并保存,并且将BOOTPROTO对应的值改成static
    sudo systemctl restart network #刷新网络服务
    ip addr #查看你修改的ip是否生效
    
  2. 所有主机全部配置内核转发功能

    sudo vi /etc/sysctl.conf
    
    # sysctl settings are defined through files in
    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    #加入下面这行命令
    net.ipv4.ip_forward = 1
    
    #执行使之生效,看到我们刚才的配置出现证明生效,如果没有生效检查内核版本是否支持IP 转发功能
    sudo sysctl -p
    
  3. rancher服务器准备

    安装docker环境

部署rancher

  1. 启动rancher容器
#这里操作都是rancher服务器上,也就是10.15.0.10
#创建目录保存rancher数据
mkdir -p /opt/data/rancher_data

#启动rancher镜像,这里用的比较新的镜像,可以去github rancher仓库查看
docker run -d --privileged -p 80:80 -p 443:443 -v /opt/data/rancher_data:/var/lib/rancher --restart=always --name  rancher-2.7.5 rancher/rancher:v2.7.5
  1. 访问http://10.15.0.10

  2. 可以看到页面是这样的,然后根据它的提示进入系统

    rancher_idnex

部署K8S集群

  1. 点击create创建一个集群

    创建集群

  2. 下拉到最下面选择custom自定义

    选择自定义创建

  3. 填写集群名称,其他暂时默认

    默认设置

  4. 首先配置k8s的控制节点,这里我们选择node1(10.15.0.11)作为k8s集群的控制节点。那么,如图中step1中下面全部勾选,step2中要把跳过ssl勾选(这一步不是必须,这里只是演示),然后把下面的命令复制到node1中执行即可。

    注意:这里的命令依赖OpenSSL工具,所以需要你现在服务器上下载好

    设置控制节点

  5. 配置剩余的工作节点,在step1中只勾选worker选项,step2中勾选跳过ssl。然后复制下面命令在node2,node3中执行即可。

    设置工作节点

  6. 然后等待集群自己配置即可。如果中间出错,可以在控制台将集群删除,然后重新创建,重复上述步骤即可

自此,已经部署完一个可用的k8s集群了。