Kubernetes学习-集群搭建篇(一) 搭建Master结点

news2024/10/5 21:15:00

🏷️个人主页:牵着猫散步的鼠鼠 

🏷️系列专栏:Kubernetes渐进式学习-专栏

🏷️个人学习笔记,若有缺误,欢迎评论区指正 

目录

1. 前言

2. 集群搭建方式

3. 环境说明

4. 利用kubeadm初始化Master结点

4.1. 初始操作

4.2 安装基础软件(全部结点都要安装)

4.3. 部署Kubernetes Master结点

5. 总结 


1. 前言

我们在前面的几篇文章中讲解了Kubernetes的相关概念,接下来我们进入实战,从零搭建Kubernetes集群。

2. 集群搭建方式

Kubernetes集群的搭建方式主要有以下几种:

  1. kubeadm

    • 优点
      • 易于使用:kubeadm提供了简单的命令行工具来初始化和管理Kubernetes集群。
      • 社区支持:由于是官方提供的工具,因此有广泛的社区支持和文档。
      • 版本控制:可以轻松升级和降级Kubernetes版本。
      • 自定义:支持自定义配置,可以根据需求调整集群设置。
    • 缺点
      • 生产就绪:默认配置可能不适合生产环境,需要额外的配置和调优。
      • 学习曲线:对于新手来说,可能需要一定时间来理解和学习kubeadm的工作原理。
  2. Minikube

    • 优点
      • 易于启动:适合快速启动一个本地的Kubernetes环境进行开发和测试。
      • 无需外部依赖:可以在个人电脑上运行,不需要额外的物理或虚拟机。
    • 缺点
      • 单节点:仅适用于单节点集群,不适合生产环境。
      • 功能有限:某些Kubernetes功能可能无法在Minikube中完全支持。
  3. Kind (Kubernetes in Docker)

    • 优点
      • 快速部署:可以在Docker容器中运行Kubernetes集群,非常适合本地开发和测试。
      • 无需虚拟机:与Minikube类似,Kind也不需要额外的虚拟机。
    • 缺点
      • Docker依赖:依赖于Docker环境,不支持其他容器运行时。
      • 同样适用于单节点环境,不适合生产部署。
  4. 手动搭建

    • 优点
      • 完全控制:可以完全自定义集群的每个组件和配置。
      • 理解深入:通过手动搭建,可以更深入地理解Kubernetes的内部结构和组件交互。
    • 缺点
      • 复杂性:手动搭建过程复杂,容易出错。
      • 维护困难:升级和故障排查需要更多的手工操作。
  5. 自动化工具(如Ansible, Terraform)

    • 优点
      • 自动化:可以自动化集群的部署和配置过程,减少人为错误。
      • 可重复:脚本可以重复使用,便于管理多个集群。
    • 缺点
      • 学习成本:需要学习额外的工具和脚本语言。
      • 维护脚本:随着集群的变化,脚本可能需要更新和维护。
  6. 托管服务(如GKE, EKS, AKS)

    • 优点
      • 管理简单:云提供商管理Kubernetes的控制平面,用户只需管理工作节点。
      • 高可用:通常提供高可用性和自动扩展功能。
      • 与云服务集成:与云提供商的其他服务(如存储、网络)集成良好。
    • 缺点
      • 成本:可能需要支付额外的费用。
      • 云提供商依赖:锁定到特定的云提供商。

每种搭建方式都有其适用场景和优缺点。选择哪种方式取决于你的需求、资源、技能和预算。对于学习和测试环境,我们采用kubeadm来搭建集群

3. 环境说明

  • 操作系统:CentOs7.6
  • Docker:20+
  • k8s:1.23.6
  • 主节点云服务器:4H8G
  • 从节点云服务器:4H4G

云服务器最低配置推荐:2核,2G内存,20G硬盘,学习的话购买2H2G的就够用啦

4. 利用kubeadm初始化Master结点

4.1. 初始操作

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭 selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

关闭swap,关闭完swap后要重启一遍机器!

swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

 根据规划设置主机名

hostnamectl set-hostname 这里填你的主机名(随便起,比如k8s-master)

 在master添加hosts配置

cat >> /etc/hosts << EOF
192.168.113.120 k8s-master
192.168.113.121 k8s-node1
192.168.113.122 k8s-node2
EOF

将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

让上述配置生效

sysctl --system  

 同步机器时间

yum install ntpdate -y
ntpdate time.windows.com

4.2 安装基础软件(全部结点都要安装)

安装docker(使用官方的自动脚本)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动docker

sudo systemctl start docker

添加阿里云镜像源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

 安装kubeadm、kubelet、kubectl

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6

systemctl enable kubelet

配置关闭 Docker 的 cgroups(不关闭后面启动会报错),修改 /etc/docker/daemon.json(如果没有这个文件就手动创建),加入以下内容

{"exec-opts": ["native.cgroupdriver=systemd"]}

重启docker

systemctl daemon-reload
systemctl restart docker

4.3. 部署Kubernetes Master结点

初始化master结点,其中apiserver-advertise-address改为自己的公网地址即可

kubeadm init \
      --apiserver-advertise-address=192.168.113.120 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.23.6 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16

初始化成功会提示control-plane has initialized successfully!

如果遇到如下报错,提示端口被占用

可输入kubeadm reset指令清除上次初始化生成的配置,再次调用init初始化即可

安装成功后,复制如下配置并执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

输入kubectl get nodes来测试结点是否配置启动成功,如果显示下述信息,那么代表你master已经启动好啦~

5. 总结 

本次我们先简单的搭建了Master结点,下一次我们将继续部署从节点,并部署CNI网络插件,实现不同结点间的相互通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1660027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应该在哪里找海外ip代理?

出于学习工作&#xff0c;或者游戏娱乐的需求&#xff0c;许多人需要使用海外代理ip。那么我们该如何寻找到合适的、正规的、安全的海外代理ip呢&#xff1f; 首先&#xff0c;我们需要明白使用海外IP代理可能带来的风险&#xff0c;包括隐私泄露、网络速度变慢、安全风险以及可…

百融云创回购计划加速落实 机构看好中长期吸引力

单日回购近400万港元B类股份&#xff0c;一站式服务的AI科技领航者百融云创&#xff08;百融云-W,6608.HK&#xff09;的回购计划正在加速落实。 此前&#xff0c;在百融云创2023年年度业绩公告的同时&#xff0c;该公司一并披露将在2024年不时在公开市场购回总金额不超过2.5亿…

原生微信小程序canvas签名功能

半个月前百度搜出来的&#xff0c;没存书签现在不知道是哪篇文章了&#xff0c;再搜也没搜出来那篇文章&#xff0c;还好当时把代码复制到本地跑了一下&#xff0c;现在再发csdn存一下。 sign.js Page({data: {ctx: null,width: null,height: null,drawCount: 0,drawState: &…

WebStorm开发插件

WebStorm开发插件 开发 WebStorm 插件是一项令人兴奋的任务&#xff0c;它可以帮助提升开发效率&#xff0c;定制 IDE 来满足个人或团队的需求。在这份指南中&#xff0c;我将向你介绍如何开始开发 WebStorm 插件&#xff0c;并提供一些实用的技巧和建议。 1. 准备工作 在开…

“幽灵“再临!新型攻击瞄准英特尔CPU;微软Outlook漏洞被俄利用,网络间谍攻击捷克德国实体 | 安全周报0510

1. 微软Outlook漏洞被俄罗斯APT28利用&#xff0c;捷克德国实体遭网络间谍攻击&#xff01; 捷克和德国于周五透露&#xff0c;他们成为与俄罗斯有关的APT28组织进行的长期网络间谍活动的目标&#xff0c;此举遭到欧洲联盟&#xff08;E.U.&#xff09;、北大西洋公约组织&…

视频拼接融合产品的产品与架构设计(二)

视频拼接融合产品的产品与架构设计一 以上是第一期&#xff0c;以前思考的时候还是比较着急&#xff0c;现在思考的更多了&#xff0c;现实世界的拼接更加需要我们沉下心来做&#xff0c;尤其是对于更多画面&#xff0c;画面更加清晰怎么做 本篇章不在于其他功能&#xff0c;在…

SpringBoot的图片上传

简介 该文档旨在介绍一个基于Spring Boot框架的简单文件上传功能的实现方式。本文档将详细介绍相关代码的功能和配置以及如何使用它们。 样例 技术栈 Spring Boot&#xff1a;一个用于快速开发基于Spring的应用程序的框架。Thymeleaf&#xff1a;一个用于在Web应用程序中创建…

孔板流量计和孔板流量计真的不一样

孔板流量计和孔板流量计真的不一样&#xff0c;无论您是追求品质&#xff0c;还是注重实用功能&#xff0c;我们的产品都能让您心动不已。让您轻松享受到现代科技所带来的便利&#xff0c;尽情展现自己不一样的魅力。 用途【1-5-9】 孔板流量计为煤矿瓦斯抽放而设的计算瓦斯抽…

vue3.0(五) reactive全家桶

文章目录 1 reactive1.1 reactive的应用1.2 reactive的特点1.3 reactive的注意1.4 reactive的局限性 2 toRefs3 isReactive4 shallowReactive5 readonly5.1 readonly 详细信息5.2 readonly函数创建一个只读的响应式对象5.3 如何修改嵌套在只读响应式对象中的对象? 6 isReadonl…

SG3225EEN在PAM4光模块和400G,QSFP-DD光模块中的应用

爱普生晶振SG3225EEN&#xff0c;156.25MHz在PAM4光模块和QSFP-DD光模块中的应用。光模块市场已发展至400G光模块&#xff0c;那么PAM4光模块和400G QSFPDD光模块有哪些区别呢?SG3225EEN又是怎么应用在PAM4光模块和QSFP-DD光模块中的呢? 首先介绍的是PAM4光模块:PAM4是PAM(脉…

爱思控AQMDBLS-Ax/Bx/Mx/T 系列无刷电机驱动器使用

履带车配置 AQMDBLS-Ax/Bx/Mx/T 系列无刷电机驱动器使用大致需要以下几个步骤。 1&#xff09; 阅读用户使用说明书、了解驱动器的性能、明确控制目的&#xff1b;2&#xff09; 根据电机和驱动器的接线原理&#xff0c;正确接线&#xff1b;3&#xff09; 使用 485 通讯控制&…

FileLink跨网文件摆渡系统:保障数据安全,促进业务高效协同

FileLink跨网文件摆渡系统&#xff0c;作为一种先进的文件传输解决方案&#xff0c;正逐渐在企业级应用中崭露头角。它打通了不同网络之间的隔阂&#xff0c;使得文件能够安全、高效地从一个网络传输到另一个网络。 FileLink跨网文件摆渡系统基于先进的加密技术和数据传输协议&…

亚信安慧AntDB:解锁数智化的新时代

亚信安慧AntDB的融合实时的特性使得它在数据库领域独树一帜。传统的数据库系统往往只能追求数据的准确性和一致性&#xff0c;但在实际的业务场景中&#xff0c;这些特性并不能满足企业的需求。AntDB的出现打破了传统束缚&#xff0c;为企业带来了全新的数据处理方式&#xff0…

【Linux网络编程】高级IO——五种IO模型

高级IO 1.什么是IO&#xff1f;什么是高效的IO&#xff1f;2.有那些IO的方式&#xff1f;这么多的方式&#xff0c;有那些是高效的&#xff1f;3.五种IO模型4.高级IO重要概念5.非阻塞IO 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x…

shopro商城 源码搭建/部署/上线/运营/售后/更新

基于Fastadmin和Uniapp进行开发的多平台&#xff08;微信公众号、微信小程序、H5网页、Android-App、IOS-App&#xff09;购物商城&#xff0c;拥有强大的店铺装修、自定义模板、路由同步、多端支付&#xff08;微信&#xff0c;支付宝&#xff09;、多规格商品、运费模板、多地…

突发!31篇文章被撤!这本Springer旗下SCI,开始大面积撤稿,原因涉及同行评议!

【欧亚科睿学术】 近期&#xff0c;期刊JOURNAL OF COMBINATORIAL OPTIMIZATION撤回了31篇文章&#xff0c;大部分文章都是由中国学者参与。主要原因是包括但不限于&#xff1a;编辑处理和同行评议过程的妥协&#xff0c;不恰当或不相关的参考文献&#xff0c;或者不在期刊或客…

如何高效合并Python字典?掌握这些技巧,让你的代码更优雅!

在Python中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种非常有用的数据结构&#xff0c;它允许我们以键值对的形式存储数据。在日常编程中&#xff0c;我们经常需要将两个或多个字典合并为一个。幸运的是&#xff0c;Python提供了一种简洁而高效的方式来实现这一…

探索财富新纪元:订单排队模式引领企业革新之路

尊敬的企业家们&#xff0c;大家好&#xff01;在现今这个竞争激烈的商业环境中&#xff0c;寻找一种既高效又具持续性的商业策略&#xff0c;是每个企业家都关注的焦点。今天&#xff0c;我要为您揭示一种前沿的商业模式——订单排队模式&#xff0c;它可能为您的企业开启全新…

金蝶BI应收分析报表:关于应收,这样分析

这是一张出自奥威-金蝶BI方案的BI应收分析报表&#xff0c;是一张综合运用了筛选、内存计算等智能分析功能以及数据可视化图表打造而成的BI数据可视化分析报表&#xff0c;可以让企业运用决策层快速知道应收账款有多少&#xff1f;账龄如何&#xff1f;周转情况如何&#xff1f…

2024数维杯数学建模A题B题C题思路+模型+代码(开赛后第一时间更新)

2024数维杯数学建模A题B题C题思路模型代码&#xff08;开赛后第一时间更新&#xff09; https://mbd.pub/o/bread/ZpWakpdq https://mbd.pub/o/bread/ZpWakpdq 2024年第九届数维杯大学生数学建模挑战赛参赛规则 竞赛要求及论文提交方式; ①本次参赛作品统一在线提交到竞赛…