【Kubernetes】Kubernetes之二进制部署

news2024/10/1 12:26:47

kubernetes

  • 一、Kubernetes 的安装部署
    • 1. 常见的安装部署方式
      • 1.1 Minikube
      • 1.2 Kubeadm
      • 1.3 二进制安装部署
    • 2. K8S 部署 二进制与高可用的区别
      • 2.1 二进制部署
      • 2.2 kubeadm 部署
  • 二、Kubernetes 二进制部署过程
    • 1. 服务器相关设置以及架构
    • 2. 操作系统初始化配置
    • 3. 部署 etcd 集群
    • 4. 部署 docker引擎
    • 5. 部署 Master 组件
    • 6. 部署 Worker Node 组件
    • 7. 部署 CNI 网络组件
      • 7.1 部署 flannel
        • Overlay Network
        • Flannel
  • 总结
    • 1. 如何通过Kubeadm安装K8S集群
    • 2. K8S 二进制搭建过程
    • 3. ectd 数据库备份还原
    • 4. K8S kubeadm搭建
    • 5. K8S 的网络
    • 6. VLAN 和 VXLAN 的区别
    • 7. flannel UDP 模式和 VXLAN 模式的工作原理
    • 8. flannel 和 calico 区别


一、Kubernetes 的安装部署

1. 常见的安装部署方式

1.1 Minikube

  Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。

  部署地址:https://kubernetes.io/docs/setup/minikube

1.2 Kubeadm

  Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相对简单。

  部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

1.3 二进制安装部署

  生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8S集群,新手推荐。

  部署地址:https://github.com/kubernetes/kubernetes/releases

2. K8S 部署 二进制与高可用的区别

2.1 二进制部署

  • 部署难,管理方便,集群伸展性能好;
  • 更稳定,集群规模到达一定的规模(几百个节点、上万个Pod),二进制稳定性是要高于kubeadm部署;
  • 遇到故障,宿主机起来了,进程也会起来。

2.2 kubeadm 部署

  • 部署简单,管理难;
  • 是以一种容器管理容器的方式允许的组件及服务,故障恢复时间比二进制慢;
  • 遇到故障,启动宿主机,再启动进程,最后去启动容器,集群才能恢复,速度比二进制慢。

二、Kubernetes 二进制部署过程

1. 服务器相关设置以及架构

集群服务器主机名 集群服务器IP地址 集群服务器部署的服务
k8s集群 master01 192.168.145.15 kube-apiserver
kube-controller-manager
kube-scheduler etcd
k8s集群 master02 192.168.145.30
k8s集群 node01 192.168.145.45 kubele
kube-proxy
docker
k8s集群 node02 192.168.145.60
etcd集群节点1 192.168.145.15 etcd
etcd集群节点2 192.168.145.45
etcd集群节点3 192.168.145.60
负载均衡nginx+keepalive01(master) 192.168.145.75
负载均衡nginx+keepalive02(backup) 192.168.145.90

在这里插入图片描述

2. 操作系统初始化配置

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

#关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

#关闭swap,开机不自动挂载swap分区
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 

在这里插入图片描述

#根据规划设置主机名
hostnamectl set-hostname master01
hostnamectl set-hostname master02
hostnamectl set-hostname node01
hostnamectl set-hostname node02

#在master添加hosts
cat >> /etc/hosts << EOF
192.168.145.15 master01
192.168.145.30 master02
192.168.145.45 node01
192.168.145.60 node02
EOF

在这里插入图片描述

#调整内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

sysctl --system

#时间同步
yum install ntpdate -y
ntpdate time.windows.com

crontab -e
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com  &> /dev/null

在这里插入图片描述

3. 部署 etcd 集群

  etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd是go语言编写的。

  etcd 作为服务发现系统,有以下的特点:

  • 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单;
  • 安全:支持SSL证书验证;
  • 快速:单实例支持每秒2k+读操作;
  • 可靠:采用raft算法,实现分布式系统数据的可用性和一致性。

  etcd 目前默认使用2379端口提供HTTP API服务, 2380端口和peer通信(这两个端口已经被 IANA[互联网数字分配机构] 官方预留给etcd)。 即etcd默认使用2379端口对外为客户端提供通讯,使用端口2380来进行服务器间内部通讯。

  etcd 在生产环境中一般推荐集群方式部署。由于etcd 的leader选举机制,要求至少为3台或以上的奇数台。

准备签发证书环境

  CFSSL 是 CloudFlare 公司开源的一款 PKI/TLS 工具。 CFSSL 包含一个命令行工具和一个用于签名、验证和捆绑 TLS 证书的 HTTP API 服务。使用Go语言编写。

  CFSSL 使用配置文件生成证书,因此自签之前,需要生成它识别的 json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。

  CFSSL 用来为 etcd 提供 TLS 证书,它支持签三种类型的证书:

1)client 证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如 kube-apiserver 访问 etcd;
2)server 证书,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如 etcd 对外提供服务;
3)peer 证书,相互之间连接时使用的证书,如 etcd 节点之间进行验证和通信。
#这里全部都使用同一套证书认证。

在 master01 节点上操作

#准备cfssl证书生成工具
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo

chmod +x /usr/local/bin/cfssl*
------------------------------------------------------------------------------------------
cfssl:证书签发的工具命令
cfssljson:将 cfssl 生成的证书(json格式)变为文件承载式证书
cfssl-certinfo:验证证书的信息
cfssl-certinfo -cert <证书名称>			#查看证书的信息
------------------------------------------------------------------------------------------

### 生成Etcd证书 ###
mkdir /opt/k8s
cd /opt/k8s/

#上传 etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中
chmod +x etcd-cert.sh etcd.sh

在这里插入图片描述

#创建用于生成CA证书、etcd 服务器证书以及私钥的目录
mkdir /opt/k8s/etcd-cert
mv etcd-cert.sh etcd-cert/
cd /opt/k8s/etcd-cert/
./etcd-cert.sh			#生成CA证书、etcd 服务器证书以及私钥

ls
ca-config.json  ca-csr.json  ca.pem        server.csr       server-key.pem
ca.csr          ca-key.

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

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

相关文章

Vue——formcreate表单设计器自定义组件实现(二)

前面我写过一个自定义电子签名的formcreate表单设计器组件&#xff0c;那时初识formcreate各种使用也颇为生疏&#xff0c;不过总算套出了一个组件不是。此次时隔半年又有机会接触formcreate&#xff0c;重新熟悉和领悟了一番各个方法和使用指南。趁热打铁将此次心得再次分享。…

python爬虫1:基础知识

python爬虫1&#xff1a;基础知识 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 目录结构 文章目录 python爬虫1&#xff1a;基础知识1. 基础认知1.1 什么是爬虫&…

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现完整流程

【2023】XXL-Job 具体通过docker 配置安装容器&#xff0c;再通过springboot执行注册实现 一、概述二、安装1、拉取镜像2、创建数据库3、创建容器并运行3、查看容器和日志4、打开网页 127.0.0.1:9051/xxl-job-admin/ 三、实现注册测试1、创建一个SpringBoot项目、添加依赖。2、…

steam搬砖项目拆解,长久稳定

steam搬砖指将"CS:GO"的游戏道具从国外游戏平台搬到国内的游戏平台&#xff08;一般都是在网易BUFF&#xff09;进行贩卖&#xff0c;从而赚取道具商品差价或者汇率的差价。 首先&#xff0c;Steam是全球最大的游戏平台&#xff0c;拥有上亿的玩家&#xff0c;同时在…

ISC 2023︱诚邀您参与赛宁“安全验证评估”论坛

​​8月9日-10日&#xff0c;第十一届互联网安全大会&#xff08;简称ISC 2023&#xff09;将在北京国家会议中心举办。本次大会以“安全即服务&#xff0c;开启人工智能时代数字安全新范式”为主题&#xff0c;打造全球首场AI数字安全峰会&#xff0c;赋予安全即服务新时代内涵…

数据驱动+自动化测试

自动化测试代码优化 setUp 在每个测试用例执行之前执行 tearDown 在每个测试用例执行完以后执行 所以&#xff0c;可以利用setUp&#xff0c;把测试用例中的通用代码提取出来&#xff0c;减少冗余 数据驱动测试&#xff1a;优化自动化测试 安装&#xff1a; pip install p…

JDK19 - synchronized关键字导致的虚拟线程PINNED

JDK19 - synchronized关键字导致的虚拟线程PINNED 前言一. PINNED是什么意思1.1 synchronized 绑定测试1.2 synchronized 关键字的替代 二. -Djdk.tracePinnedThreads的作用和坑2.1 死锁案例测试2.2 发生原因的推测2.3 总结 前言 在 虚拟线程详解 这篇文章里面&#xff0c;我们…

Protues 仿真报错Internal Exception: access violation in module ‘UNKNOWN‘[7ADEEEA9]

在使用STM32F103C8进行Protues仿真设计的时候&#xff0c;出现了这个报错&#xff0c;通过查找和定位问题&#xff0c;发现是我在配置供电网络的时候配置错误&#xff0c;要配置成如下&#xff1a; 至于为什么回这样&#xff0c;我猜想应该是和这个软件导入STM32芯片的时候&…

300个智商测试FLASH智商游戏ACCESS数据库

最近在找IQ测试方面的数据&#xff0c;网上大多只留传着33道题这种类型&#xff0c;其他的又因各种条件&#xff08;比如图片含水印等&#xff09;不能弄&#xff0c;这是从测智网下载的一些测试智商的游戏数据&#xff0c;游戏文件是FLASH的&#xff0c;扩展名是SWF。 数据包总…

FineReport主题组件使用

主题 添加主题 服务器-》模版主题管理&#xff0c;设置决策报表与普通报表的模版主题&#xff1a; 修改内置模版&#xff0c;打开&#xff0c;点击另存为设置自己的主题名称&#xff0c;保存主题 根据自己需求设置模版相关样式&#xff1a;模版背景、单元格样式、图表样式、…

模板方法设计模式(C++)

定义 定义一个操作中的算法的骨架(稳定&#xff09;,而将一些步骤延迟(变化&#xff09;到子类中。Template Method使得子类可以不改变(复用&#xff09;一个算法的结构即可重定义(override重写)该算法的某些特定步骤。 ——《设计模式》GoF Template Method模式是一种非常基…

转录组下游分析 | 懒人分析推荐

写在前面 今天在GitHub看到一个博主写的RNASeqTool的ShinApp&#xff0c;里面包含了PCA、DESeq2、volcano、NormEnrich、GSEA、Gene tred analysis和WGCNA分析。使用后还是很方便的&#xff0c;就此推荐给大家。感兴趣可以自己操作即可。 GitHub网址 https://github.com/Cha…

QT以管理员身份运行

以下配置后&#xff0c;QT在QT Creator调试时&#xff0c;或者生成的.exe程序&#xff0c;都将会默认以管理员身份运行。 一、MSVC编译器 1、在Pro文件中添加以下代码&#xff1a; QMAKE_LFLAGS /MANIFESTUAC:\"level\requireAdministrator\ uiAccess\false\\" …

Java 8 中使用 Stream 遍历树形结构

在实际开发中&#xff0c;我们经常会开发菜单&#xff0c;树形结构&#xff0c;数据库一般就使用父id来表示&#xff0c;为了降低数据库的查询压力&#xff0c;我们可以使用Java8中的Stream流一次性把数据查出来&#xff0c;然后通过流式处理&#xff0c;我们一起来看看&#x…

利用openTCS实现车辆调度系统(二)openTCS下载部署

openTCS下载 **openTCS不是一个部署即用的系统&#xff0c;需要自己做一部分二次开发工作。这里先下载打包好的应用&#xff0c;了解openTCS的功能&#xff1a;应用下载地址**整个部署使用部分包括&#xff0c;启动程序、应用地图、准备设备、下发订单。 1、启动调度内核 双…

idea中cherry pick怎么用

网上的文章比较杂乱&#xff0c;具体idea里面怎么操作&#xff0c;好像没有个成型的文章 cherry pick的作用&#xff1a; 简而言之就是同一个commit&#xff0c;然后复制提交到其他分支&#xff08;只检出本次提交的&#xff09;&#xff1b; 解决的问题&#xff1a; 两个分…

轻松搭建酒店小程序

酒店小程序的制作并不需要编程经验&#xff0c;只需要按照以下步骤进行操作&#xff0c;就能很快地搭建自己的小程序商城。 第一步&#xff0c;注册登录账号进入操作后台&#xff0c;找到并点击【商城】中的【去管理】进入商城的后台管理页面&#xff0c;然后再点击【小程序商城…

原型模式与享元模式:提升系统性能的利器

原型模式和享元模式&#xff0c;前者是在创建多个实例时&#xff0c;对创建过程的性能进行调优&#xff1b;后者是用减 少创建实例的方式&#xff0c;来调优系统性能。这么看&#xff0c;你会不会觉得两个模式有点相互矛盾呢&#xff1f; 在有些场景下&#xff0c;我们需要重复…

Linux安装cuda和cudnn教程

Linux安装cuda和cudnn教程 文章目录 1.下载cuda和cudnn2. 安装cuda并检验安装是否成功3. 安装cudnn4.验证cuda是否能用代码附件&#xff1a;解压各种格式文件的Linux命令参考文献 卸载之前的cuda 卸载之前的cuda教程 1.下载cuda和cudnn CUDA下载地址&#xff1a;https://dev…

Tailwind CSS:简洁高效的工具,提升前端开发体验

112. Tailwind CSS&#xff1a;简洁高效的工具&#xff0c;提升前端开发体验 1. 什么是Tailwind CSS&#xff1f; Tailwind CSS是由Adam Wathan、Jonathan Reinink、David Hemphill和Steve Schoger等人共同创建的一种现代CSS框架。与传统的CSS框架不同&#xff0c;Tailwind CS…