使用VirtualBox安装CentOS 7和Kubernetes
发布网友
发布时间:2022-10-18 09:16
我来回答
共1个回答
热心网友
时间:2023-11-11 06:56
在《使用VirtualBox安装CentOS 7和Docker》中,我们已经详细地介绍了使用VirtualBox安装CentOS 7和Docker的过程。现在我们在此基础上继续安装Kubernetes。
首先,我们新建“/etc/yum.repos.d/kubernetes.repo”,使用aliyun的镜像仓配置yum源。
将以下内容保存到文件中:
之后,为新添加的yum源生成缓存:
其输出结果为:
首先,我们通过以下命令关闭swap分区:
然后,我们修改“/etc/fstab”文件,禁止swap被自动加载:
将其中swap的配置注释掉即可:
配置kubernetes的过程需要关闭防火墙:
同时我们将防火墙取消自启动:
首先,我们执行以下命令,禁用SELinux:
然后,我们修改配置文件“/etc/sysconfig/selinux”:
将“SELINUX”设置为“disabled”:
执行以下命令,查看SELinux状态:
其输出结果为:
说明已禁用SELinux。
此时,我们需要修改“/etc/docker/daemon.json”文件:
将以下内容保存到文件中:
然后,我们重启Docker服务,使配置生效:
我们可以通过以下命令来查看当前生效的cgroup驱动:
其输出结果为:
在安装Kubernetes之前,我们先重启操作系统,确保之前所修改的配置生效。
首先,我们安装Kubernetes的必要工具:
这里我们需要记下所安装的Kubernetes的版本,例如:
说明我们所安装的kubernetes的版本为“1.23.3”。
然后,我们将kubelet服务设置为自启动:
输出结果为:
注意,这里我们只是将服务设置为自启动,并未启动服务。现在服务是无法启动的,我们先要进行初始化。
初始化服务需要依赖一些镜像,在国内访问“k8s.gcr.io”来拉取镜像通常是有问题的,因此这里我们先从阿里云将镜像拉取到本地。
如果拉取镜像过程发生“connection refused”导致的失败,我们重新执行命令来拉取即可。
拉取成功后的输出如下:
执行以下命令,使网桥在进行二层转发时使用iptables配置的三层规则:
执行结果如下:
现在我们需要对环境进行初始化,需要注意的是:
执行以下命令进行初始化,执行前需要检查参数,以符合自身环境的网络要求:
在初始化完成后,输出内容的最下方有如下的信息:
根据提示,因为我本地是直接使用的root用户,因此执行以下命令:
但是在操作系统重启后,这个设置就失效了,需要重新设置。这里我们直接修改“/etc/profile”文件,增加环境变量。
然后在文件最后增加环境变量配置:
如果不是使用root命令安装,则需执行以下命令:
现在,我们来检查一下kubelet服务的状态:
其输出结果为:
此时Kubernetes的基础服务已经安装成功。我们通过以下命令来查看POD状态:
输出结果如下:
说明虽然服务已经安装成功,但是master节点并未处于可用状态。我们通过以下命令来查看POD的运行状态。
其输出结果如下:
我们发现名称“coredns-xxx”的两个POD的状态为“Pending”,未启动成功。此时我们需要安装网络服务,我们选择使用calico来提供网络服务:
输出结果如下:
现在我们重新查看节点状态:
输出结果为:
此时节点已处于就绪状态。我们再来检查POD状态:
输出结果为:
各POD的运行状态都正常,Kubernetes已安装完成。
在默认情况下,在Kubernetes中部署应用时,是不会调度到master节点的,在我们学习和体验Kubernetes时不是很方便。此时我们可考虑通过去除污点(taints)的方法来使master节点参与负载,以使POD可以被调用到master节点中部署和运行。
首先,我们检查当前master节点是否参与了负载:
执行结果如下:
表示当前master节点尚未参与负载。此时我们执行以下命令,以使其参与负载:
执行结果为:
现在我们再次检查参与负载的情况:
输出结果是一个空行,则此时已可以使POD被调度到master节点了。
为了更直观的使用Kubernetes,我们后续来安装Dashboard,以提供通过Web页面的访问。