【最全Kubernetes容器编排安装教程】(一)

简介: 【最全Kubernetes容器编排安装教程】

环境准备

本地用的操作系统是Windows 10 专业版,版本号22H2,操作系统内部版本19045.3324,内存64.0 GB,处理器12th Gen Intel® Core™ i9-12900K 3.19 GHz,三台机都是通过VMware Workstation Pro安装Centos7的操作系统。

规划Kubernetes集群配置

角色 IP kubernetes版本
k8s-master 192.168.122.130
k8s-node1 192.168.122.131
k8s-node2 192.168.122.132

主机间做信任

在本地Windows操作系统生成秘钥文件,并把它上传到Linux操作系统CentOS7的3台机上面,做好免密登录,方便后续的操作。

执行ssh-copy-id root@目标IP地址命令实现免密登录,其他两台做同样的操作。

在Windows系统中执行ssh-copy-id root@192.168.248.129命令时,需要使用第三方软件来实现SSH客户端的功能,如PuTTY、Git Bash等。

使用ssh-copy-id命令实现免密登录的安装与配置

下面以Git Bash为例,介绍在Windows系统中使用ssh-copy-id命令实现Linux的CentOS 7免密登录的安装与配置过程。

1. 安装Git Bash软件

可以从Git官网下载安装程序,安装时选择默认选项即可。

2. 生成公钥

在Git Bash中执行以下命令,生成公钥文件:

ssh-keygen -t rsa

执行后,会提示输入文件名和密码等信息,可以直接按回车选择默认选项。生成的公钥文件默认保存在用户目录的.ssh目录下,文件名为id_rsa.pub。

然后将这二个文件上传到k8s-master、k8s-node1、k8s-node2

3. SSH登录Linux服务器

使用Git Bash登录到Linux服务器,执行以下命令:

ssh root@192.168.122.130

第一次登录时,会提示是否添加主机到已知主机列表。输入yes,然后输入Linux服务器的密码即可登录成功。

4. 公钥复制到Linux服务器

使用以下命令将公钥复制到Linux服务器上:

ssh-copy-id root@192.168.122.130

执行后,会提示输入Linux服务器的密码,输入即可。

5. SSH免密登录测试

使用以下命令测试是否已实现SSH免密登录:

ssh root@192.168.122.130

若能直接登录而无需输入密码,则表示SSH免密登录已成功实现。

提示“/root/.ssh/id_rsa”的权限0777太开放,此私钥将被忽略,修改一下权限,代码如下:

chmod 600 /root/.ssh/id_rsa

执行过程中如果出现提示无法打开 ‘/root/.pub’ 这个文件,因为该文件或目录不存在。在尝试将SSH公钥复制到远程服务器时,可能指定了错误的公钥文件路径。可以尝试以下步骤来解决此问题:首先,确保具有SSH密钥对。运行以下命令来检查:ls -al ~/.ssh。如果结果中没有 id_rsa 和 id_rsa.pub 文件,说明您还没有SSH密钥对。您可以使用以下命令生成它们:ssh-keygen -t rsa。按提示操作即可,不必理会默认设置。

其他二台机器也是如此操作,这样就可以在本地(Windows操作系统)、CentOS(3台机器)都可以使用,效果如下图所示:

安装ansible工具

是的,Ansible是一种自动化工具,可用于配置和管理多个服务器。它使用SSH连接来远程管理服务器,可以在多个服务器上同时执行命令,从而提高效率。安装Ansible也非常简单,只需从官方的yum源安装即可。在CentOS上,可以使用以下命令安装Ansible,只需要在master上安装,然后在配置/etc/ansible/hosts文件中,将要操作的主机加入一个组中即可。安装命令代码如下:

yum install epel-release -y
yum -y install ansible

在安装完成后,就可以开始使用Ansible进行自动化配置和管理服务器了。

配置/etc/ansible/hosts,该文件是存放要操作的主机,如下:

vim /etc/ansible/hosts

把上述三台机器加入一个组名字为k8s,如下:

[k8s]
192.168.122.130
192.168.122.131
192.168.122.132

执行ansible命令测试连通性,命令如下:

ansible k8s -m ping

该命令会对名为k8s的主机组中的所有主机执行ping模块,测试它们是否能正常连接。如果输出pong,就说明测试成功。如果输出失败信息,则需要检查主机的网络设置和防火墙等因素是否正确。

-m:指定使用的Ansible模块。 ping:是Ansible中一个模块,用于测试主机的连通性。 k8s:是Ansible中定义的主机组名,即要执行ping命令的目标主机所属的主机组。

k8s:刚定义的组名

升级内核版本

查看Linux内核版本号,可以使用以下命令:

uname -sr

这将返回当前正在运行的Linux内核版本号。

Linux 3.10.0-1160.95.1.el7.x86_64

当前内核版本是3.10,Kubernetes需要使用一些Linux内核的功能,例如Namespaces、Cgroups、OverlayFS等,这些功能是在比较新的Linux内核版本中才能够完整支持。因此,为了保证Kubernetes的正常运行,建议升级到最新的Linux内核版本。对于Kubernetes1.22版本来说,官方推荐的最低Linux内核版本为4.4。如果使用的是更老的Linux内核版本,可能会在Kubernetes的安装、部署和使用中遇到一些问题或者限制。因此,为了获得更好的Kubernetes使用体验,建议升级到官方推荐的Linux内核版本或者更高的版本。

使用elrepo源升级内核

在每台机器上都执行相同的命令来安装elrepo源,配置elrepo源,执行如下命令:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

查看最新版内核

执行如下命令查看最新的内核版本

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

kernel-ml #主线版本,比较新

kernel-lt #长期支持版本,比较旧

安装最新的内核版本

执行如下命令安装主线版本:

yum --enablerepo=elrepo-kernel install kernel-ml -y


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
795 108
|
3月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
366 2
|
3月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
290 1
|
5月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
458 11
|
9月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
840 33
|
9月前
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
9月前
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
2月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
255 1

热门文章

最新文章

推荐镜像

更多