#查看当前内核版本 uname -rs
#查看软件库中可下载的内核 sudo apt list | grep linux-generic*
如果已经是最新的就不必更新
#下载最新的内核(具体版本以软件库中为准) sudo apt-get install linux-generic-hwe-20.04-edge/focal-updates
这里等它更新完毕后需要重启服务器,所以等下一步完成后一并重启检测
vim /etc/hostname
即可设置全限定域名,删除原有内容,输入完整的全限定域名保存退出即可,例如k8s-master。
修改后依然要重启才能生效
vim /etc/hosts
即可设置hosts。K8S集群一般包含多台计算机,hosts的内容应该包含集群内的所有机器。如:
在安装 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
文件通常是一个受保护的系统文件,因此在修改之前,请确保已经有相应的权限。
#uwf: #开启防火墙 ufw enable #关闭防火墙 ufw disable
#firewall # 关闭防火墙 systemctl stop firewalld # 关闭防火墙开机启动 systemctl disable firewalld
#查看SELinux状态 /usr/sbin/sestatus -v #如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
#也可以用这个命令 getenforce
临时关闭(不用重启机器):
#设置SELinux 成为permissive模式 setenforce 0 #设置SELinux 成为enforcing模式 setenforce 1
修改配置文件需要重启机器:
修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled。
vi /etc/selinux/config
重启机器即可
在安装 Rancher 和 Kubernetes 之前关闭 SELinux 是为了解决一些安全限制问题。SELinux(Security-Enhanced Linux)是一个 Linux 内核安全模块,用于限制程序对系统资源的访问和操作。它为 Linux 提供了更高的安全性和完整性,但有时候也会导致一些问题。
在 Rancher 和 Kubernetes 的安装过程中,可能会出现某些 SELinux 相关的问题,例如:
- Rancher 系统初始化时可能会出现 SELinux 安全策略的限制,从而导致初始化失败;
- Kubernetes 集群的某些组件可能会试图访问一些被 SELinux 限制的系统资源,从而导致组件无法正常启动。
为了解决这些问题,一种简单的方法是在安装 Rancher 和 Kubernetes 之前暂时关闭 SELinux。关闭 SELinux 可以暂时解除对系统资源的限制,从而使 Rancher 和 Kubernetes 的安装和初始化过程更容易成功。
编辑/etc/fstab
vim /etc/fstab
找到如下行并把它注释掉,重启系统并验证
sudo swapon --show
如果已经关闭那么该命令不会有输出
如图为没关闭的:
下图是已关闭的:
Ubuntu20.04安装教程
Centos安装教程
只需要其中一台机器安装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了
浏览器输入https://[你的IP]:8443
访问Rancher
访问链接的时候会出现
点高级,无视风险继续访问。
进入Rancher后会出现如下界面,根据操作提示完成即可。
docker logs <container-id> 2>&1 | grep "Bootstrap Password:"
首先是从Rancher容器获得初始密码
输入密码点击登录,然后创建新密码
根据密码要求重置密码后,同意下方的使用要求,点击Continue。
进入主页面后,点击左上方,切换语言为中文
下面显示有一个local集群就证明Rancher已经安装成功了
如上图,点击创建集群
点击自定义:
给集群写好名字,选择k8s版本,这里选的是V1.19.16。
点击下一步后,进入添加主机命令页面。点选Etcd,Control Plane,Woker三个选项,然后复制下方的命令,到master节点执行。
点击下一步后,进入添加主机命令页面。点选Etcd,Control Plane,Woker三个选项,然后复制下方的命令,到master节点执行。
在执行的过程中需要等待很长的时间,中途在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。
安装完成后会有如下日志。
在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/
在浏览集群中,点击刚创建好的集群
点击按钮复制配置文件
首先创建目录,复制yaml配置文件的内容,添加到config中然后保存:wq
mkdir ~/.kube cd ~/.kube vi config
然后执行命令就能看到我们刚创建的集群信息了
kubectl config get-contexts