当前位置: 首页 > news >正文

Kubernetes 集群初步部署

Kubernetes 集群初步部署

目标

本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群,并安装必要的工具和组件。

准备工作
  • 确保所有虚拟机已经准备好,并且具有足够的资源来运行Kubernetes集群。
  • 虚拟机操作系统版本一致,推荐使用Red Hat 8.x。
  • 确保所有虚拟机之间网络互通。
  • 推荐主机配置:
主机ip配置
master192.168.3.1954核,6g内存,40g硬盘
node1192.168.3.1962核,2g内存,20g硬盘
node2192.168.3.1972核,2g内存,20g硬盘
步骤
  1. 修改主机名

    • 登录到每台虚拟机。
    • 使用hostnamectl命令设置主机名。
      hostnamectl set-hostname master
      hostnamectl set-hostname node1
      hostnamectl set-hostname node2
      
  2. 配置阿里源并更新包

    • 在每台虚拟机上编辑/etc/yum.repos.d/aliyun.repo文件。
      sudo vim /etc/yum.repos.d/aliyun.repo
      
      添加以下内容:
      [baseos]
      name=CentOS-$releasever-BaseOS-mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
      gpgcheck=0
      enabled=1[appstream] 
      name=CentOS-$releasever-AppStream-mirrors.aliyun.com
      baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
      gpgcheck=0
      enabled=1
      
    • 更新包缓存。
      sudo dnf makecache
      sudo dnf update -y
      
  3. 配置SSH免密登录

    • 在Master节点上生成SSH密钥。
      ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
      
    • 复制公钥到所有节点。
      ssh-copy-id master
      ssh-copy-id node1
      ssh-copy-id node2
      
    • 测试SSH连接。
      ssh node1
      
  4. 关闭交换分区

    • 在所有节点上执行以下命令。
      swapoff -a
      echo "vm.swappiness = 0" >> /etc/sysctl.conf
      sysctl -p
      
  5. 关闭防火墙

    • 在所有节点上执行以下命令。
      systemctl disable firewalld
      systemctl stop firewalld
      
  6. 修改内核参数

    • 在所有节点上执行以下命令。
      modprobe br_netfilter
      echo "modprobe br_netfilter" >> /etc/profile
      tee /etc/sysctl.d/k8s.conf << EOF
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      sysctl --system
      
  7. 配置集群时间同步

    • 在所有节点上安装并启用chrony服务。
      sudo dnf install -y chrony
      systemctl start chronyd
      systemctl enable chronyd
      
  8. 配置DNF仓库

    • 在所有节点上执行以下命令。
      sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
      sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
  9. 安装Docker

    • 在所有节点上执行以下命令,registry-mirrors此处替换为国内镜像源,如阿里
      sudo dnf install -y docker-ce-20.10.0 docker-ce-cli-20.10.0 containerd.io
      systemctl start docker
      systemctl enable docker
      docker version
      cat > /etc/docker/daemon.json << EOF
      {"registry-mirrors": ["https://your.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
      }
      EOF
      systemctl daemon-reload
      systemctl restart docker
      
  10. 添加主节点到hosts文件

    • 在所有节点上执行以下命令。
      echo "192.168.3.195 cluster-endpoint" >> /etc/hosts
      
  11. 安装Kubernetes

    • 在所有节点上创建Kubernetes的YUM仓库。
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      EOF
      
    • 在所有节点上安装Kubernetes组件。
      sudo dnf install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
      systemctl enable kubelet
      
  12. 安装CoreDNS

    • 在所有节点上执行以下命令。
      docker pull coredns/coredns:1.8.4
      docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
      
  13. 初始化Kubernetes集群(仅在Master节点执行)

    • 执行以下命令。
      kubeadm init \
      --apiserver-advertise-address=192.168.3.195 \
      --control-plane-endpoint=cluster-endpoint \
      --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=172.20.0.0/16
      
    • 初始化完成后,根据提示信息执行kubeadm join命令加入Worker节点。
    • kubeconfig文件复制到用户目录。
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
  14. 复制kubeconfig文件到node节点

    • 使用SSH将kubeconfig文件复制到Worker节点。
      ssh root@node1 'mkdir -p /root/.kube'
      ssh root@node2 'mkdir -p /root/.kube'
      scp /etc/kubernetes/admin.conf root@node1:/root/.kube/config
      scp /etc/kubernetes/admin.conf root@node2:/root/.kube/config
      ssh root@node1 'chmod 600 /root/.kube/config'
      ssh root@node2 'chmod 600 /root/.kube/config'
      
  15. 验证节点状态

    • 在Master节点上执行以下命令。
      kubectl get nodeNAME     STATUS   ROLES                  AGE     VERSION
      master   Ready    control-plane,master   3d21h   v1.23.6
      node1    Ready    <none>                 3d21h   v1.23.6
      node2    Ready    <none>                 3d21h   v1.23.6
      
  16. 安装Kuboard图形化工具(仅在Master节点执行)

    • 安装Kuboard。
      kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
      
    • 访问Kuboard。
      http://<master-ip>:30080
      
      输入初始用户名和密码登录。
      • 用户名:admin
      • 密码:Kuboard123

注意事项

  • 确保所有命令都以sudo前缀运行,以获得必要的权限。
  • 检查网络连接,确保所有节点之间能够互相访问。
  • 如果遇到任何问题,请检查日志文件和输出信息,以便进行故障排除。
  • 安全性考虑:在生产环境中,强烈建议使用更安全的方法来处理敏感信息,如证书和密钥。

相关文章:

Kubernetes 集群初步部署

Kubernetes 集群初步部署 目标 本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群&#xff0c;并安装必要的工具和组件。 准备工作 确保所有虚拟机已经准备好&#xff0c;并且具有足够的资源来运行Kubernetes集群。虚拟机操作系统版本一致&#xff0c;推荐使用R…...

从源码到成品:直播美颜SDK与主播美颜工具的开发全流程

本篇文章&#xff0c;小编将带你深入了解从源码到成品的开发全流程&#xff0c;探讨如何构建一个功能完善的直播美颜SDK与主播美颜工具。 一、需求分析与技术规划 在开发任何工具之前&#xff0c;需求分析是第一步。在美颜工具的开发过程中&#xff0c;需要明确以下几点&…...

AMD EPYC 9004服务器内存配置深度分析:为何全通道填充是关键?

在一次技术沟通中&#xff0c;客户询问在部署AMD EPYC 9004服务器时&#xff0c;是否应该完全填充内存通道&#xff1f; 考虑到AMD正在用5年的更新周期替换其AMD EPYC 7002 “Rome”和Cascade Lake一代的服务器&#xff0c;他们认为通过减少内存插槽的填充&#xff0c;可以节省…...

redis的事务与管道有什么不同?

Redis 的事务&#xff08;MULTI/EXEC&#xff09;和管道&#xff08;PIPELINE&#xff09;都是为了执行多条命令&#xff0c;但它们的工作原理和目标不同。以下是两者的详细对比。 1. Redis 事务 (MULTI/EXEC) 特点&#xff1a; 事务的本质&#xff1a;Redis 事务是一组命令的…...

Redis 配置

一、关系型数据库与非关系型数据库 1. 关系型数据库 关系型数据库是一种结构化数据库&#xff0c;基于关系模型&#xff08;二维表格模型&#xff09;&#xff0c;适合记录数据。通过 SQL&#xff08;结构化查询语言&#xff09;进行数据的检索和操作。主流的关系型数据库包括…...

【Qt笔记】QTableWidget控件详解

目录 引言 一、QTableWidget的特点 二、QTableWidget基础 2.1 引入QTableWidget 2.2 基本属性 三、代码示例&#xff1a;初始化QTableWidget 四、编辑功能 4.1 设置单元格为只读 4.2 响应内容更改 五、选择模式 六、样式定制 七、与其他控件的交互 7.1 在单元格…...

高低压配电系统中电弧光的危害有多大?

摘要 故障电弧是一种常见的电气故障现象&#xff0c;尤其在配电系统中&#xff0c;可能对设备安全和电力供应造成严重影响。本文旨在探讨故障电弧对配电系统的危害&#xff0c;并提出相应的预防措施&#xff0c;以增强系统的可靠性和安全性。通过对故障电弧的形成机制、危害分…...

安宝特案例 | AR如何大幅提升IC封装厂检测效率?

前言&#xff1a;如何提升IC封装厂检测效率&#xff1f; 在现代电子产品的制造过程中&#xff0c;IC封装作为核心环节&#xff0c;涉及到复杂处理流程和严格质量检测。这是一家专注于IC封装的厂商&#xff0c;负责将来自IC制造商的晶圆进行保护、散热和导通处理。整个制程繁琐…...

QGIS 如何连接空间库,并实时编辑空间表?编辑后库表如何刷新,保证是最新数据?

文章目录 一、什么是 qgis&#xff1f;二、qgis 如何连接数据库三、实时编辑空间表四、编辑后库表如何刷新&#xff0c;保证是最新数据&#xff1f;五、总结 一、什么是 qgis&#xff1f; QGIS&#xff08;原称Quantum GIS&#xff09;是一个用户界面友好的开源桌面端软件&…...

CleanClip for mac(苹果电脑剪切板管理器)

CleanClip 是一款为 Mac 设计的强大剪贴板管理工具&#xff0c;它能够显著提升你的工作效率和生产力。无论是在日常办公中还是进行创意设计&#xff0c;CleanClip 都能帮助你更轻松地管理和使用剪贴板内容。让我们一起来探索一下这个功能丰富的软件吧&#xff01; 下载地址&am…...

嵌入式栈溢出怎么办?

在写文件的时候,因为把FATFS这些数据结构定义在了函数里,所以栈溢出了,我把比较大的数据结构放在全局变量上,就没事了.目前仅测试阶段,也可以放在堆里.不用的时候释放掉,减少耦合度.或者加static....

工厂安灯系统在优化生产流程上的优势

工厂安灯系统通过可视化的方式&#xff0c;帮助工厂管理者和操作工人及时了解生产状态&#xff0c;快速响应问题&#xff0c;从而优化生产流程。 一、安灯系统实时监控与反馈 安灯系统的核心功能是实时监控生产线的状态。通过在生产现场设置灯光、显示屏等设备&#xff0c;工人…...

【Kubernetes】(K8S)彻底卸载详细教程

以下全部操作都是使用root用户进行&#xff08;非root用户可以使用sudo&#xff09;&#xff0c;并且全部命令都需要在Kubernetes集群的所有节点分别执行&#xff1a; 第一步、停止K8S 所有节点执行&#xff1a; 1 2 3 systemctl stop kubelet systemctl stop etcd systemct…...

web基础之文件上传

1.下载安装 下载地址 链接&#xff1a;百度网盘-链接不存在 提取码&#xff1a;jhks 安装 直接把他放在phpstudy的WWW目录中。&#xff08;phpstudy的下载安装&#xff0c;可以自行百度一下&#xff09; 打开 访问地址&#xff1a;127.0.0.1/upload-labs 问题 这里可能…...

解决“找不到msvcp140.dll无法继续执行代码”问题:技术困境与解决方案

在现代计算机技术的发展中&#xff0c;软件依赖性问题日益凸显&#xff0c;其中“找不到msvcp140.dll无法继续执行代码”错误尤为常见。本文将从技术背景、问题成因、解决方案及预防措施四个方面&#xff0c;深入探讨这一技术困境&#xff0c;旨在为读者提供全面的理解和有效的…...

智能赋能,Vatee万腾平台助力企业升级新高度

在当今这个日新月异的数字时代&#xff0c;智能技术的飞速发展正以前所未有的力量重塑着各行各业的面貌。作为这一变革浪潮中的佼佼者&#xff0c;Vatee万腾平台凭借其卓越的智能赋能能力&#xff0c;正引领众多企业迈向转型升级的新高度&#xff0c;开启了智能化发展的新篇章。…...

ceph-radosgw 手动安装教程以及安装问题解决办法

一、环境 操作系统版本&#xff1a;Ubuntu20.04 x86_64 ceph版本&#xff1a;ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable) radosgw版本&#xff1a;15.2.17 二、ceph-radosgw 安装步骤 ceph官方英文版教程&#xff0c;写了个大概步骤…...

PageRank算法

一.定义-迭代算法 输入:含有 n n n个结点的有向图,转移矩阵 M M M,阻尼因子 d d d,初始向量 R 0 R_0 R0​,计算精度 ϵ \epsilon ϵ 输出:有向图的PageRank向量 R R R (1)令 t 0 t0 t0 (2)计算 R t 1 d M R t 1 − d n 1 R_{t1} dMR_t \frac{ 1 - d }{ n} 1 Rt1​dMRt​…...

YOLOv8改进 | 模块缝合 | C2f 融合Self-Calibrated Convolutions丰富特征图【CVPR2020】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…...

跨境反向代购淘宝京东商品系统的商品价格详情等数据如何轻松自动化获取?

在跨境电商领域&#xff0c;反向代购系统逐渐成为连接国内外市场的重要桥梁。随着技术的不断发展和市场的日益成熟&#xff0c;如何高效、准确地自动化获取淘宝、京东等电商平台的商品价格、详情等数据&#xff0c;成为跨境反向代购系统开发者必须面对的重要课题。本文将详细介…...

ChatGPT资源宝库:从提示工程到项目实践的完整指南

1. 项目概述&#xff1a;一份关于ChatGPT的“Awesome”清单意味着什么&#xff1f;如果你最近在GitHub上搜索过任何与ChatGPT、AI或提示工程相关的内容&#xff0c;那么你大概率见过一个以“awesome-”开头的仓库。而sindresorhus/awesome-chatgpt无疑是这个领域里最知名、最常…...

Fast-GitHub:打破GitHub访问壁垒的智能加速方案

Fast-GitHub&#xff1a;打破GitHub访问壁垒的智能加速方案 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾因GitHub仓库克…...

对比直接使用厂商 API 体验 Taotoken 在模型切换上的便利性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商 API 体验 Taotoken 在模型切换上的便利性 在个人开发项目中接入大模型时&#xff0c;开发者通常面临一个选择&am…...

从SD卡初始化到读写文件:一个完整嵌入式项目中的SDIO驱动避坑实践

从SD卡初始化到读写文件&#xff1a;嵌入式SDIO驱动实战全解析 在嵌入式系统开发中&#xff0c;SD卡因其高容量、低成本和便携性成为数据存储的首选方案。然而&#xff0c;看似简单的SD卡接口背后隐藏着复杂的初始化协议和时序要求。许多工程师在项目初期都会遇到SD卡无法识别、…...

完整实战指南:使用N_m3u8DL-RE高效解决流媒体下载难题

完整实战指南&#xff1a;使用N_m3u8DL-RE高效解决流媒体下载难题 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...

Sketchfab数据提取终极指南:打破在线3D模型下载壁垒的完整解决方案

Sketchfab数据提取终极指南&#xff1a;打破在线3D模型下载壁垒的完整解决方案 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 你是否曾在Sketchfab上发现完美的3D…...

All in Token,移动,电信,联通,百度,阿里,字节,华为,Token战争,Token无用:李彦宏用DAA终结了AI的度量衡之争

今年4月&#xff0c;AI行业出现了一组让投资人坐立难安的数据&#xff1a;Anthropic年化营收突破300亿美元&#xff0c;正式超过OpenAI的约250亿美元。但反常的是&#xff0c;据第三方机构估算&#xff0c;Claude的月活用户仅约为ChatGPT的2.44%。以及&#xff0c;Anthropic的模…...

如何3分钟搭建智能手机号定位系统:免费归属地查询终极指南

如何3分钟搭建智能手机号定位系统&#xff1a;免费归属地查询终极指南 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_…...

基于Claude API构建AI代码生成工具:从API封装到工程化实践

1. 项目概述与核心价值最近在开发者社区里&#xff0c;一个名为ashish200729/claude-code-source-code的项目标题引起了不小的讨论。乍一看&#xff0c;这个标题很容易让人产生误解&#xff0c;以为这是某个知名AI模型的源代码被公开了。但作为一名在软件开发和开源领域摸爬滚打…...

Shell脚本加固实战:用shellguard提升脚本健壮性与安全性

1. 项目概述&#xff1a;一个为Shell脚本穿上“防弹衣”的守护者 在运维开发、自动化部署乃至日常的系统管理工作中&#xff0c;Shell脚本是我们最忠实、最高效的伙伴。从简单的日志清理到复杂的CI/CD流水线&#xff0c;Shell脚本无处不在。然而&#xff0c;脚本的安全性、健壮…...