Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Kubeadm创建k8s集群之部署规划(三十一)

使用Kubeadm创建k8s集群之部署规划(三十一)

作者头像
心莱科技雪雁
发布于 2019-07-27 12:37:16
发布于 2019-07-27 12:37:16
75100
代码可运行
举报
文章被收录于专栏:雪雁的专栏雪雁的专栏
运行总次数:0
代码可运行

前言

上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群。

部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲)。因此本教程会在部署的过程中穿插讲解一些部署相关知识、原理和步骤,比如kubeadm、kubelet以及启动集群时的实际部署动作等等。整个部署过程全部脚本化,以便各位参考和学习。

因整个集群部署教程篇幅较长,因此会拆分成几篇进行说明。

目录

使用Kubeadm创建k8s集群

  • Kubeadm概述
  • Kubelet概述
  • 定义集群部署目标和规划
  • 部署规划

使用Kubeadm创建k8s集群

Kubeadm概述

Kubeadm 是一个命令行工具,它主要提供了“kubeadm init” 以及 “kubeadm join”这两个命令来快速创建和初始化kubernetes 集群。

Kubeadm通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群,而不是之前的节点准备工作。同样的,诸如安装各种各样的插件,例如 Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不在它负责的范围。

主要命令

其主要命令和说明如下表所示:

命令

说明

kubeadm init

启动一个Kubernetes主节点

kubeadm join

启动一个Kubernetes工作节点并且将其加入到集群

kubeadm upgrade

更新一个 Kubernetes 集群到新版本

kubeadm config

查看存储在集群中的kubeadm配置,例如“kubeadm config images list”可以列出kubeadm需要的镜像

kubeadm token

令牌管理

kubeadm reset

重置集群,也就是将还原kubeadm init 或者 kubeadm join 对主机所做的任何更改

kubeadm version

打印 kubeadm 版本

Kubelet概述

kubelet 是在每个节点上运行的主要“节点代理”。简单地说,kubelet 的主要功能就是定时获取节点上pod/container 的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态,并确保它们能够健康的运行。因此,kubelet的主要功能为:

  • pod管理
  • 容器健康检查
  • 容器监控

注意,不是 Kubernetes创建的容器将不在 kubelet 的管理范围。

了解了这些,接下来,我们来使用Kubeadm来创建集群。

定义集群部署目标和规划

有目标,我们才能有的放矢。在本节内容中,我们将基于三台虚拟机来搭建一个k8s集群,其中一台作为主节点,另外两台作为工作节点。

具体部署架构如下所示:

1.安装规划

服务器规划:

主机名称

操作系统

IP

系统配置

备注

k8s-master

CentOS-7-x86_64

172.16.2.201

2核2G

作为主节点

k8s-node1

CentOS-7-x86_64

172.16.2.202

2核2G

作为工作节点

k8s-node2

CentOS-7-x86_64

172.16.2.203

2核2G

作为工作节点

值得注意的是:

  • 服务器最小内存不得小于2G,CPU核心数最少为2;
  • 群集中所有的计算机之间拥有完全的网络连接(公共或专用网络);
  • 所有机器都有sudo权限;

相关环境的搭建和初始化笔者这里先行略过。

以下内容均使用root账户安装和配置。

Pod 分配 IP 段:10.244.0.0/16

kubernetes-version:v1.15.0

apiserver-advertise-address:172.16.2.201

部署规划

接下来,我们就开始按规划进行部署。主体步骤如下所示:

1.主机和IP设置

各节点主机名称和IP设置如表所示:

主机名称

IP

k8s-master

172.16.2.201

k8s-node1

172.16.2.202

k8s-node2

172.16.2.203

接下来我们以master(k8s-master)为例,相关设置步骤如下所示(请注意替换相关参数):

  • 设置主机名称以及修改主机记录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash:#设置Host名称hostnamectl set-hostname k8s-master  
#查看host名称hostname

#修改Host文件,给127.0.0.1添加hostnameecho "127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 k8s-master::1         localhost localhost.localdomain localhost6 localhost6.localdomain6"> /etc/hosts

#查看修改结果cat /etc/hosts
  • 配置网络服务以及设置固定IP
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash:#配置网卡echo "DEVICE=eth0TYPE=EthernetIPADDR=172.16.2.201PREFIX=24NETMASK=255.255.255.0NETWORK=172.16.2.0GATEWAY=172.16.2.254BROADCAST=172.16.2.255DEFROUTE=yesONBOOT=yesUSERCTL=yesBOOTPROTO=staticNAME=eth0IPV4_FAILURE_FATAL=yesUUID=5ed1bf4a-4be2-4040-ad55-fea853b849d1"> /etc/sysconfig/network-scripts/ifcfg-eth0

#编辑/etc/sysconfig/networkecho "NETWORKING=yesHOSTNAME=k8s-master"> /etc/sysconfig/network

#编辑/etc/resolv.conf,设置DNSecho "nameserver 172.16.2.254nameserver 114.114.114.114nameserver 8.8.8.8"> /etc/resolv.conf

#重启网络服务systemctl restart network.service #重启网络服务systemctl status network.service #查看网络服务状态
  • 系统设置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash:#关闭Selinuxsed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

#永久关闭Swapswapoff -ased -ri 's/.*swap.*/#&/' /etc/fstabecho "vm.swappiness = 0">> /etc/sysctl.conf  

#修改内核参数cat <<EOF > /etc/sysctl.d/k8s.confnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1vm.swappiness=0EOF

2.Docker安装

这里推荐使用以下脚本来安装官方已经充分测试过的指定版本的Docker-ce以及设置加速器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装必须的包yum install yum-utils device-mapper-persistent-data lvm2# 添加Docker仓库yum-config-manager \  --add-repo \  https://download.docker.com/linux/centos/docker-ce.repo# 安装指定版本的Docker CEyum update && yum install docker-ce-18.06.2.ce# 创建 /etc/docker 目录mkdir /etc/docker# 设置守护程序cat > /etc/docker/daemon.json <<EOF{  "exec-opts": ["native.cgroupdriver=systemd"],  "log-driver": "json-file",  "log-opts": {    "max-size": "100m"  },  "storage-driver": "overlay2",  "storage-opts": [    "overlay2.override_kernel_check=true"  ] ,  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}EOFmkdir -p /etc/systemd/system/docker.service.d# 重启Docker服务systemctl daemon-reloadsystemctl enable dockersystemctl restart docker

3.主机端口设置

  • 主节点端口设置:

协议

方向

端口

说明

TCP

入站

6443*

Kubernetes API server

TCP

入站

2379-2380

etcd server client API

TCP

入站

10250

Kubelet API

TCP

入站

10251

kube-scheduler

TCP

入站

10252

kube-controller-manager

  • 工作节点端口设置:

协议

方向

端口

说明

TCP

入站

10250

Kubelet API

TCP

入站

30000-32767

NodePort Services

CentOS默认没有安装防火墙,需要使用以下命令安装和启用防火墙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#安装iptables服务yum install  iptables-servicessystemctl  enable iptables.servicesystemctl  start  iptables.service

然后使用编辑器按Demo编辑文件/etc/sysconfig/iptables设置准入端口即可。

在开发实验阶段,为了方便,大家也可以直接禁用防火墙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld.servicesystemctl disable firewalld.service

如果喜欢作者的文章,请关注“magiccodes”订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 麦扣聊技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TBtools基因家族分析详细教程(3)基因家族成员的进化分析1
其中,No.of Bootstrap Replication默认最小50,即使设定10也自动调整为50。
Y大宽
2018/10/08
13.8K1
TBtools基因家族分析详细教程(3)基因家族成员的进化分析1
如何用MEGA构建进化树
虽说版本都更新到X了,但小编还是比较喜欢用MEGA7这个版本,从官网上下载即可。这个版本的界面是酱紫的。
阿凡亮
2020/04/14
3K0
一文学会从测序数据到构建系统发育树:超全面的详细步骤与软件指南
在科研工作里,构建与美化进化树是必须掌握的技能之一。这篇文章汇总和整理了之前的相关内容,依照文章中的脉络,基本上能够在大多数情形下满足构建进化树的需求。本文将从测序数据到构建系统发育树需要经过这4个步骤进行阐述:①数据收集与预处理②多序列比对③选择适合的建树方法④系统发育树的评估与美化。
简说基因
2025/01/22
6930
一文学会从测序数据到构建系统发育树:超全面的详细步骤与软件指南
FastTree:速度最快的最大似然法进化树构建软件
FastTree 是基于最大似然法构建进化树的软件,它最大的特点就是运行速度快,支持几百万条序列的建树任务。官方的说法是,对于大的比对数据集,FastTree 比phyml或者RAxML 快100到1000倍。官网如下
生信修炼手册
2020/05/08
14.5K0
FastTree:速度最快的最大似然法进化树构建软件
FastTree:构建系统进化树,比快更快
系统进化树作为直观展示进化进程的工具,在生命科学研究中有重要作用。而构建系统进化树的工具有很多,我们昨天介绍了1分钟构建完美的系统进化树 。
简说基因
2024/12/23
5830
FastTree:构建系统进化树,比快更快
构建系统发育树
构建系统发育树属于群体遗传学分析范畴,随着时间和地理位置的变化,新冠病毒经过多次迭代,在基因组上会累积不同的突变,已经与祖先产生明显的不同。通过对多个序列进行系统发育分析,不仅可以厘清不同物种之间的亲缘关系,而且可以重塑新冠病毒的演化过程,具有重要的现实意义。例如某地新发疫情,可以对样本快速测序,构建全基因组序列,然后对其进行系统发育分析,快速定位到系统发育树中,可以快速鉴定新发菌株的亲缘关系,对于疫情防控溯源具有重要的指导作用。
生信喵实验柴
2022/04/07
3.8K1
构建系统发育树
进化树构建的基本过程(上)
通过进化树,我们可以得到一些非常有价值的信息,比如说某几个物种在同一分支上,说明他们有着较近的亲缘关系,更有可能他们之间存在着祖先与进化的关系。比如最近来势汹汹的新冠肺炎,下图为从网上找的冠状病毒遗传进化分析,其中图中2019-nCoV即为本次新型冠状病毒。
医学数据库百科
2020/06/01
2.8K0
进化树构建的基本过程(上)
1分钟构建完美的系统进化树
今天,我们着手完成最后一块拼图:生物进化。首先要学习的,是系统发育树的构建工具:IQ-Tree。
简说基因
2024/12/23
3140
1分钟构建完美的系统进化树
构建系统进化树到底选哪个工具?
系统发育树(Phylogenetic Tree)是用来表示物种之间亲缘关系的树状图。它基于物种的遗传信息,通过比较不同物种的DNA或蛋白质序列,推断出它们之间的进化关系。系统发育树在生物学研究中具有重要的意义,可以帮助我们理解物种的起源、演化和分类。
简说基因
2025/01/01
2050
构建系统进化树到底选哪个工具?
iTOL快速绘制颜值最高的进化树!
大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章。人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你每次花了半个月时间做的进化树不是被老板嫌弃配色丑,就是太单调,没有各种辅助的注释信息。然后你默默捧起别人的文章学习时发现他们绝大部分都是用iTOL这个在线工具来进行的系统发育树的美化的。
生信宝典
2018/12/27
6.5K1
iTOL快速绘制颜值最高的进化树!
搞起来!群体遗传三剑客:PCA、Admixture、进化树
群体遗传学中常用的三大分析工具:主成分分析(PCA)、Admixture分析和进化树(Phylogenetic Tree),它们在分析基因型数据时各有侧重,互为补充。下面介绍一下这三种方法。
邓飞
2025/02/25
4930
搞起来!群体遗传三剑客:PCA、Admixture、进化树
使用Y叔神包ggtree进行基因家族基因进化树构建
大家好,我是技能树的老朋友啦,三年前在群主的第一波RNA-seq入门8步活动中因为表现优异获得群主青睐成为技能树VIP一员,也开启了自己的学习经验分享人生!
生信技能树
2019/08/02
9.1K1
使用Y叔神包ggtree进行基因家族基因进化树构建
单细胞空间数据分析之CNV进化树
时光荏苒,2022年也即将结束,这一年,单细胞空间多组学技术进一步带领我们走入生物组织的微观世界。单细胞多组学的技术发展让研究人员可以从单个细胞的维度进行遗传学、转录组学、蛋白组学等方面的深入解析,空间多组学则从细胞空间排布的角度帮助研究者洞悉细胞之间的相互协作及动态迁移,单细胞空间技术的联合使用已经成了科研手段的研究利器,从更深层次的方面解读发育、疾病等发生的生物学机制。
追风少年i
2022/12/12
1.1K0
单细胞空间数据分析之CNV进化树
构建进化树常用方法:生物进化距离(NJ)、统计特征(ML)和离散特征(MP)
1.1 依据: 这个方法最早是遗传学家以及统计学家罗纳德·费雪爵士在 1912 年至1922 年间开始使用的 。基本思想是:当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大,而不是像最小二乘估计法旨在得到使得模型能最好地拟合样本数据的参数估计量。
白墨石
2021/01/13
5.7K0
构建进化树常用方法:生物进化距离(NJ)、统计特征(ML)和离散特征(MP)
ggtree-给你的进化树盛世美颜
ggtree是ggplot2的拓展包,可以应用于进化树的绘制,还能对进化树丰富的注释分析。
作图丫
2022/03/29
12.2K0
ggtree-给你的进化树盛世美颜
对新冠病毒核酸序列构建系统进化树
虽然没有phylip格式,但是如果你理解了格式,就知道,其实无非就是软件开发者定义好的规则。我以前分享过HPV的病毒进化树,可以把这个当做是学徒作业了。
生信技能树
2020/03/10
2.1K0
对新冠病毒核酸序列构建系统进化树
一文读懂进化树(图文详解)
一、什么是进化树二、进化树的构成1. 根 (Root)2. 结点 (Node)3. 进化支 (Branch)4. 外群5. 进化分支长度6. 距离标尺7. Bootstrap value三、进化树评估1. Bootstrap检验2. 重复取样值3. Bootstrap value 阈值4. Bootstrap value 与分支四、几种进化树图1.经典树图(Traditional)Rectangle Tree2.圈图(Circle Tree)3.辐射树(Radiation Tree)
生信菜鸟团
2020/06/17
14.8K0
构建系统发育树简述
地球上所有的生物都可以追溯到一个共同的祖先。任何较小的物种群也可以将其祖先追溯到共同的祖先,通常是最近的祖先。
数据科学工厂
2023/02/27
7820
构建系统发育树简述
使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树
线性泛基因组相关论文通常会获得基因存在缺失变异矩阵,接下来会使用这个矩阵构建进化树,今天的推文介绍一下使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树的代码
用户7010445
2024/02/03
4000
使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树
群体遗传三剑客第三篇:megacc和ggtree进化树分析
MEGACC 是 MEGA 的命令行版本,能在无图形界面的环境里进行进化分析,软件地址:https://www.megasoftware.net/
邓飞
2025/04/23
1560
群体遗传三剑客第三篇:megacc和ggtree进化树分析
推荐阅读
相关推荐
TBtools基因家族分析详细教程(3)基因家族成员的进化分析1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验