舞台环境

  • Ubuntu 22.04.2 LTS
  • Docker 24.0.2
  • 2GB RAM或者更多
  • CPU 2核心或者更多
  • Rancher 2.6.9

测试环境中,我准备了两台 Ubuntu 服务器,IP分别是 192.168.10.43 和 192.168.10.42,一台用做 k8s 的 master 节点,一台 note 节点,Rancher 和 master 节点公用一台主机。另外,服务器之间的时间一定要精准同步。可以使用在网上找找资料,怎么做到局域网内服务器时间同步。

前置操作

修改主机名

k8s 集群中,不允许出现重复的主机名,所以我们先要修改主机名:

192.168.10.43:

hostnamectl set-hostname master-1

192.168.10.42:

hostnamectl set-hostname node-1

关闭 Swap

关闭 Swap 是保障 k8s 正常运行的不可省略的一部,执行此命令来关闭 Swap:

sed -ri 's/.swap./#&/' /etc/fstab

配置 docker 代理

为了保证后续操作的镜像拉取成功,请配置一下 docker 代理。编辑 /etc/docker/daemon.json,如果该文件不存在,需要先创建。daemon.json 内容如下:

{
"registry-mirrors": [
"https://ung2thfc.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}

重启 docker 使配置生效:

systemctl restart docker

最后重启服务器,确保所有的配置成功生效,这不一定要做,防止出现意外情况。

安装 Rancher

Rancher 只是 k8s 的一个 UI 管理工具,所以一定不要和 k8s 混淆了,Rancher 哪怕宕机了,K8s 也是可以正常运行的。我这里是测试环境,会使用 Docker 部署 Rancher,在实际的生产环境中,建议使用采用其他方式安装 Rancher,请参考官方文档,如果这里你只是学习使用,那么就照着继续做就ok。

在 192.168.10.43 上执行命令,安装 Rancher 2.6.9:

docker run -d --restart=unless-stopped \
--name=rancher \
-p 80:80 -p 443:443 \
--privileged \
rancher/rancher:v2.6.9

Rancher 的安装时间比较长,可以使用该命令查看安装进度:

docker logs --tail 30 -f rancher

等待安装完成后,在浏览器访问 http://IP 即可看到效果:

照着 Rancher 的指引,使用命令获取初始密码,然后重置密码,登录到主页:

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

看到这个页面,代表我们的 Rancher 就已经安装成功了,接下来我们来安装 k8s。

安装 k8s

在主页上创建一个集群,选择自定义选项,然后填写好集群名字,其他配置暂且不动,直接下一步即可:

最后会看到这个页面:

每个 K8s 集群最少得有一个 master 节点,我们勾选 Etcd 和 Control,复制生成好的命令在 192.168.10.43 执行,即可部署一个 master 节点,需要哪个主机成为 master 节点,就在其上执行此 docker run 命令,需要多少个 master ,就执行多少次。

这一步会拉取大量的 Dokcer 镜像,部署大量的容器,所以所需时间较长,请耐心等待。在配置过程中,可以点击菜单-集群管理-进入创建的集群,在配置日志中查看安装进度:

完成安装后,使用 docker ps 可以看到很多容器:

部署 note 节点

部署 note 节点比 master 节点简单一点点,在注册面板中把 Etcd 和 Control 勾掉,执行生成的 docker run 命令,就可以部署一个 note 节点,同样,需要多少个 note ,就在多少台主机上 docker run 一下就 ok:

部署完成的效果,可以看到我们一主一从的 k8s 集群:

测试集群

我们来创建一个工作负载,运行一个 nginx,看一下最终效果。进入集群,创建 Deployment ,配置好映射端口、镜像,点击创建:

等待安装完成,在浏览器访问 http://IP:30080, 即可看到 nginx 的欢迎页面。配置 k8s 需要更进一步的学习,本文介绍 Rancher 安装 k8s,不再赘述 k8s 的使用。

使用 Rancher 安装 K8s 集群的更多相关文章

  1. [k8s]kubespray(ansible)自动化安装k8s集群

    kubespray(ansible)自动化安装k8s集群 https://github.com/kubernetes-incubator/kubespray https://kubernetes.io ...

  2. 使用kubeadm安装k8s集群故障处理三则

    最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...

  3. rancher导入k8s集群后添加监控无数据

    1.日志报错 rancher导入k8s集群后添加监控无数据,rancher日志报错: k8s.io/kube-state-metrics/pkg/collectors/builder.go:: Fai ...

  4. yum安装k8s集群

    k8s的安装有多种方式,如yum安装,kubeadm安装,二进制安装等.本文是入门系列,只是为了快速了解k8s的原理和工作过程,对k8s有一个快速的了解,这里直接采用yum安装 的1.5.2为案例进行 ...

  5. kubernetes教程第一章-kubeadm高可用安装k8s集群

    目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...

  6. 冰河教你一次性成功安装K8S集群(基于一主两从模式)

    写在前面 研究K8S有一段时间了,最开始学习K8S时,根据网上的教程安装K8S环境总是报错.所以,我就改变了学习策略,先不搞环境搭建了.先通过官网学习了K8S的整体架构,底层原理,又硬啃了一遍K8S源 ...

  7. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

         前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...

  8. Ubuntu22.04 KubeSphere 安装K8S集群

    Ubuntu22.04 KubeSphere 安装K8S集群_Ri0n的博客-CSDN博客 一.系统环境系统:Ubuntu 22.04集群IP分布hostname 角色 IP地址master mast ...

  9. k8s学习笔记之二:使用kubeadm安装k8s集群

    一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...

  10. 关于使用rancher部署k8s集群的一些小问题的解决

    问题一: 在rancher的ui上,不能创建k8s的master节点的高可用集群.创建k8s集群,添加节点的时候,可以添加多个master,但是多个master又没有高可用,只要其中一个出问题了,那么 ...

随机推荐

  1. IBM小型机 - 登录Web控制台

    前言: IBM 小型机没有VGA或者HDMI接口,只能通过web或者串口的方式,配置和查看设备的硬件信息: 我们可以通过两种方式获取小型机的IP,并通过浏览器访问. 操作步骤: 1.服务器接通电源,直 ...

  2. .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移

    前言 接上期文章<.NET6项目连接数据库方式方法>,有人问了我几个问题,现在就这几个问题,拓展延申一下创建实体类.数据库.把ORM框架和数据迁移都写进去. 安装ORM框架,这里我们采用E ...

  3. pytorch学习笔记——timm库

    当使用ChatGPT帮我们工作的时候,确实很大一部分人就会失业,当然也有很大一部分人收益其中.我今天继续使用其帮我了解新的内容,也就是timm库.毫不夸张的说,Chat GPT比百分之80的博客讲的更 ...

  4. 一文读懂面试官都在问的Log4J2漏洞

    CVE-2021-44228 漏洞简介 Apache Log4j2是一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录. 2021年11 ...

  5. python如何利用算法解决业务上的【分单问题】

    分单是很多企业日常工作中非常典型的一项内容,它非常复杂,但同时又极为重要,如何合理的分单是企业管理中一个很重要的课题. 之所以说分单很复杂,是因为影响单据该分给谁,分多少量这个事儿本身就有太多的影响因 ...

  6. 文档在线预览(二)word、pdf文件转html以实现文档在线预览

    @[toc] 实现文档在线预览的方式除了上篇文章[<文档在线预览(一)通过将txt.word.pdf转成图片实现在线预览功能>](https://blog.csdn.net/q2qwert ...

  7. C++面试八股文:C++中指针、引用、解引用和取地址有什么不同?

    某日小二参加XXX科技公司的C++工程师开发岗位2面: 面试官:指针.引用.解引用和取地址是C++中的重要概念,请问它们在语法和语义上有所不同? 小二:指针是一个变量,它存储了一个内存地址. 小二:引 ...

  8. python里class(类)中object是什么意思

    python的class(类)中的object是什么意思? 写object和不写object有什么区别? 示例代码 class Test: name = "libai" class ...

  9. oracle常用函数(持续更新)

    1.table() 把返回结果集合的函数返回的结果,以表的形式返回 例:table(p_split('1,2,3'),',') 2.to_char() 按照指定格式输出字符串 to_char(sysd ...

  10. 第四章 IDEA的安装与使用

    网上一大推的教程 ‍