Kubernetes 安装手册(非高可用版)
1|0Kubernetes 安装手册(非高可用版)
1|1集群信息
1. 节点规划
部署k8s集群的节点按照用途可以划分为如下2类角色:
- master:集群的master节点,集群的初始化节点,基础配置不低于2C4G
- slave:集群的slave节点,可以多台,基础配置不低于2C4G
本例为了演示slave节点的添加,会部署一台master+2台slave,节点规划如下:
主机名 | 节点ip | 角色 | 部署组件 |
---|---|---|---|
k8s-master | 172.23.232.94 | master | etcd, kube-apiserver, kube-controller-manager, kubectl, kubeadm, kubelet, kube-proxy, flannel |
k8s-slave1 | 172.16.203.193 | slave | kubectl, kubelet, kube-proxy, flannel |
k8s-slave2 | 172.16.203.192 | slave | kubectl, kubelet, kube-proxy, flannel |
2. 组件版本
组件 | 版本 | 说明 |
---|---|---|
CentOS | CentOS 7.9 64位 | |
Kernel | Linux 3.10.0-1062.9.1.el7.x86_64 | |
etcd | 3.3.15 | 使用容器方式部署,默认数据挂载到本地路径 |
coredns | 1.6.2 | |
kubeadm | v1.16.2 | |
kubectl | v1.16.2 | |
kubelet | v1.16.2 | |
kube-proxy | v1.16.2 | |
flannel | v0.11.0 |
1|2安装前准备工作
1. 设置hosts解析
操作节点:所有节点(k8s-master,k8s-slave
)均需执行
- 修改hostname
hostname必须只能包含小写字母、数字、","、"-",且开头结尾必须是小写字母或数字
- 添加hosts解析
2. 调整系统配置
操作节点: 所有的master和slave节点(k8s-master,k8s-slave
)需要执行
本章下述操作均以k8s-master为例,其他节点均是相同的操作(ip和hostname的值换成对应机器的真实值)
- 设置安全组开放端口
如果节点间无安全组限制(内网机器间可以任意访问),可以忽略,否则,至少保证如下端口可通:
k8s-master节点:TCP:6443,2379,2380,60080,60081UDP协议端口全部打开
k8s-slave节点:UDP协议端口全部打开
- 设置iptables
- 关闭swap
- 关闭selinux和防火墙
- 修改内核参数
- 设置yum源
3. 安装docker
操作节点: 所有节点
1|3部署kubernetes
1. 安装 kubeadm, kubelet 和 kubectl
操作节点: 所有的master和slave节点(k8s-master,k8s-slave
) 需要执行
2. 初始化配置文件
操作节点: 只在master节点(k8s-master
)执行
对于上面的资源清单的文档比较杂,要想完整了解上面的资源对象对应的属性,可以查看对应的 godoc 文档,地址: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2。
3. 提前下载镜像
操作节点:只在master节点(k8s-master
)执行
重要更新:如果出现不可用的情况,请使用如下方式来代替:
-
还原kubeadm.yaml的imageRepository
-
使用docker hub中的镜像源来下载,注意上述列表中要加上处理器架构,通常我们使用的虚拟机都是amd64
4. 初始化master节点
操作节点:只在master节点(k8s-master
)执行
若初始化成功后,最后会提示如下信息:
接下来按照上述提示信息操作,配置kubectl客户端的认证
⚠️注意:此时使用 kubectl get nodes查看节点应该处于notReady状态,因为还未配置网络插件
若执行初始化过程中出错,根据错误信息调整后,执行kubeadm reset后再次执行init操作即可
5. 添加slave节点到集群中
操作节点:所有的slave节点(k8s-slave
)需要执行
在每台slave节点,执行如下命令,该命令是在kubeadm init成功后提示信息中打印出来的,需要替换成实际init后打印出的命令。
6. 安装flannel插件
操作节点:只在master节点(k8s-master
)执行
- 下载flannel的yaml文件,这里可能会遇到网络问题,多尝试几次即可。
- 修改配置,指定网卡名称,大概在文件的和170行,190行,添加一行配置:
- 执行安装flannel网络插件
7. 设置master节点是否可调度(可选)
操作节点:k8s-master
默认部署成功后,master节点无法调度业务pod,如需设置master节点也可以参与pod的调度,需执行:
8. 验证集群
操作节点: 在master节点(k8s-master
)执行
创建测试nginx服务
查看pod是否创建成功,并访问pod ip测试是否可用
9. 部署dashboard
- 部署服务
- 查看访问地址,本例为30133端口
-
使用浏览器访问 https://182.92.215.187:32336,其中182.92.215.187为master节点的外网ip地址,chrome目前由于安全限制,测试访问不了,使用firefox可以进行访问。
-
创建ServiceAccount进行访问
10. 清理环境
如果你的集群安装过程中遇到了其他问题,我们可以使用下面的命令来进行重置:
__EOF__

本文链接:https://www.cnblogs.com/wangb2/p/15932152.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」