一站式指导:CentOS上K8s 1.8单点搭建与组件部署

需积分: 42 10 下载量 72 浏览量 更新于2024-09-08 收藏 28KB MD 举报
本文档详细介绍了如何在CentOS系统上搭建一个Kubernetes (k8s) 1.8版本的单点环境,包括基础环境配置、依赖组件的安装和配置。以下是关键步骤的详细说明: 1. 基础环境介绍: - 主机列表包括:master1(包含apiserver、controller-manager、scheduler和flannel)、node1和node2(各自包含kubelet、kube-proxy和flannel),以及etcd1、etcd2和etcd3作为集群存储节点,以及harbor1作为私有镜像仓库。 2. Docker安装: - 首先通过`yum install`命令安装必要的包,如`yum-utils`, `device-mapper-persistent-data`, 和 `lvm2`。 - 接着添加Docker官方仓库,以便获取Docker CE的安装包:`yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo`。 - 安装Docker CE:`yum install docker-ce`,确保服务启动并启用:`systemctl enable docker` 和 `systemctl start docker`。 3. Harbor私有仓库安装: - 下载最新版本的docker-compose到服务器根目录,然后执行`chmod +x`以使其可执行。 - 将docker-compose移动到指定目录并运行,这将帮助安装和配置Harbor私有仓库,用于存储和管理k8s镜像。 4. 自签TLS证书: - 在单点环境中,由于没有外部DNS,需要创建自签名的TLS证书来确保API服务器的安全通信。这通常涉及到生成密钥对和配置kubelet和kube-proxy以信任这些证书。 5. 创建kubeconfig文件: - 为了方便与k8s集群交互,需要创建kubeconfig文件,该文件包含了访问apiserver的凭据,包括Token或证书信息。 6. 部署Etcd集群: - Etcd是k8s的核心组件,用于存储集群状态信息。这里需要安装和配置三个独立的etcd实例,确保高可用性和数据一致性。 7. 部署Flannel网络: - Flannel是k8s的默认网络插件,提供容器网络隔离。在单点环境中,它主要用于模拟集群网络,允许节点间的通信。 8. 安装master节点组件: - 包括apiserver、controller-manager和scheduler,这些是k8s控制平面的核心部分,负责处理资源调度和管理请求。 9. 安装node节点组件: - kubelet和kube-proxy分别运行在每个工作节点上,kubelet负责接收和执行来自apiserver的Pod配置,而kube-proxy维护容器内部网络规则。 10. 安装kube-dns: - DNS是集群内部服务发现的关键,kube-dns用于解决服务之间的命名冲突,提供DNS解析功能。 11. 安装Dashboard: - Dashboard是一个可视化工具,允许管理员监控和管理集群资源,提供用户友好的界面。 12. 安装监控组件: - Heapster用于收集节点和应用的度量数据,InfluxDB是时序数据库,存储这些数据,Grafana则提供图形化展示和查询界面。 13. 开启kubectl补全: - 为了提升kubectl的命令提示和自动完成功能,可能需要安装相应的插件,如自动补全脚本或使用kubectx和kubens等工具。 整个过程涉及了从基础环境准备到高级组件的安装和配置,确保了一个基本功能完备的单点k8s环境,可用于学习和测试。然而,在实际生产环境中,建议采用多节点部署以提高容错性和可扩展性。