【Kubernetes部署篇】基于Ubuntu20.04操作系统搭建K8S1.23版本集群

文章目录

    • 一、集群架构规划信息
    • 二、系统初始化准备(所有节点同步操作)
    • 三、安装kubeadm(所有节点同步操作)
    • 四、初始化K8S集群(master节点操作)
    • 五、添加Node节点到K8S集群中
    • 六、安装Calico网络插件
    • 七、测试CoreDNS可用性

一、集群架构规划信息

  • pod网段:10.244.0.0/16
  • service网段:10.10.0.0/16
  • 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。

服务器信息:

主机名IP地址操作系统
k8s-master-116.32.15.12320.04.1-Ubuntu
k8s-node-116.32.15.12420.04.1-Ubuntu

二、系统初始化准备(所有节点同步操作)

1、切换root用户,以下操作使用root用户进行

sudo -i

2、配置国内仓库源,安装所需依赖
注意:下面是以Ubuntu20.04系统的仓库源为例,如果系统版本不同,可到阿里镜像仓库寻找对应版本!!

cd /etc/apt
cp sources.list sources.list_default
> sources.listcat >> sources.list << EOF
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
apt-get update
apt-get upgrade

安装所需依赖包

apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg2

3、添加本地域名解析

cat  >> /etc/hosts << EOF
16.32.15.123 k8s-master-1
16.32.15.124 k8s-node-1
EOF

修改主机名,请复制到对应服务器执行

hostnamectl set-hostname k8s-master-1 && bash
hostnamectl set-hostname k8s-node-1 && bash

4、安装 ntpdate 保持服务器时间一致

apt install ntpdate
ntpdate ntp1.aliyun.com

配置定时任务,每天凌晨1点自动同步时间

crontab -e
0 1 * * * ntpdate ntp1.aliyun.com

Ctrl+c Ctrl+x Y Enter 进行保存退出

验证定时任务是否配置成功

crontab -l

5、关闭交换分区

swapoff --all

禁止开机自启动swap交换分区

sed -i -r '/swap/ s/^/#/' /etc/fstab

6、安装Docker
把Key添加到本地trusted数据库中

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加Docker仓库

 sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \$(lsb_release -cs) \stable"

安装Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

配置Docker驱动

cat <<EOF | tee /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://aoewjvel.mirror.aliyuncs.com"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF

启动Docker && 加入开机自启动

mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl restart docker
systemctl enable --now docker
systemctl status docker

三、安装kubeadm(所有节点同步操作)

1、配置国内yum源,安装前提依赖

apt-get update && apt-get install -y apt-transport-https curl
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF

安装依赖包

apt-get update && apt-get install -y apt-transport-https curl

执行中报错:

解决方法:
注意:这里的KEY不唯一,我上面图片红圈住了,复制你的KEY再执行

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B53DC80D13EDEF05
apt-get update && apt-get install -y apt-transport-https curl

2、安装 kubeadm、kubelet、kubectl

apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00

添加自启动

systemctl enable kubelet

标记指定软件包为保留(held back),阻止软件自动更新

apt-mark hold kubelet kubeadm kubectl 

四、初始化K8S集群(master节点操作)

kubeadm init \
--apiserver-advertise-address 16.32.15.123 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--ignore-preflight-errors=SystemVerification

初始化参数信息解释:

  • image-repository:指定国内阿里云的镜像源

  • pod-network-cidr: pod网段

  • service-cidr: service网段

  • apiserver-advertise-address: apiserver地址

  • ignore-preflight-errors:忽略检查的一些错误

由于kubernetes默认使用CA证书,所以需要为kubectl配置证书才可以访问到Master

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

测试kubectl命令是否可以使用

kubectl get node

五、添加Node节点到K8S集群中

1、kubeadm命令获取加入集群的token(master节点执行)

kubeadm token create --print-join-command
kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1

2、将获取到加入集群的token 复制到Node节点即可!(node节点执行)

kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1

3、查看集群节点信息(master节点执行)

kubectl get node

在这里插入图片描述
OK,上图可以看到节点成功加入K8S集群中。

六、安装Calico网络插件

由于calico官方在国外,下载比较慢毕竟隔着一道墙,我将calico.yaml文件下载好,放到了国内gitee上面,下面使用国内地址下载calico.yaml文件,请知晓!

master节点执行:

wget -O /root/calico.yaml https://gitee.com/qinziteng/K8S/raw/master/YMAL/calico.yaml
kubectl apply -f calico.yaml

查看集群Pod状态:

kubectl get pods -n kube-system


查看集群Node节点状态:

 kubectl get node

在这里插入图片描述
如上如 表示无误,如果还是未就绪状态,需要稍微等待一会~

七、测试CoreDNS可用性

1、创建测试容器

kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh

2、测试是否可以正常解析

nslookup kubernetes.default.svc.cluster.local

在这里插入图片描述

如上图所示可以正常解析,至此表示 基于Ubuntu20.04操作系统搭建K8S1.23版本集群 已成功部署并且无误!

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

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

相关文章

什么是跨链 DeFi?

跨链 DeFi 是指存在于多个不同区块链生态系统之间的金融应用程序生态系统&#xff0c;可以在彼此之间无缝交换数据和通证。 Web3 生态系统已经变得多链化&#xff0c;存在于数百个区块链、二层网络、应用链和其他环境的去中心化应用繁荣发展。虽然多样化的区块链生态系统的推出…

【数据结构】顺序表

大家好&#xff01;今天我们来学习数据结构中的顺序表。 目录 1. 线性表 2. 顺序表 2.1 顺序表的概念 2.2 顺序表的分类 3. 顺序表的定义 4. 顺序表的接口实现 4.1 顺序表的初始化 4.2 销毁顺序表 4.3 打印顺序表 4.4 检查顺序表是否需要扩容 4.5 尾插数据 ​编辑 …

横屏关机动画只显示一半

手机任意界面转换成横屏时关机或者重启&#xff0c;关机界面只显示一半 修改方法如下: diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index 30f1a15..31399be 100644 --- a/cmds/bootanimation/BootAnimation.cpp b/cmds/boot…

postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用

前言&#xff1a; MySQL数据库和postgresql数据库之间的差异并不多&#xff0c;这里的差异指的是对SQL语言的支持两者并不大&#xff0c;但底层的东西差异是非常多的&#xff0c;例如&#xff0c;MySQL的innodb引擎概念&#xff0c;数据库用户管理&#xff0c;这些和postgresq…

3.2 防火墙

数据参考&#xff1a;CISP官方 目录 防火墙基础概念防火墙的典型技术防火墙企业部署防火墙的局限性 一、防火墙基础概念 防火墙基础概念&#xff1a; 防火墙&#xff08;Firewall&#xff09;一词来源于早期的欧式建筑&#xff0c;它是建筑物之间的一道矮墙&#xff0c;用…

static关键字

作者简介&#xff1a; zoro-1&#xff0c;目前大一&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 被static修饰意味什么 在Java中&#xff0c;被st…

STM32 CubeMX USB_(HID 鼠标和键盘)

STM32 CubeMX STM32 CubeMX USB_HID&#xff08;HID 鼠标和键盘&#xff09; STM32 CubeMX前言 《鼠标》一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择 二、代码部分添加代码鼠标发送给PC的数据解析实验效果 《键盘》STM32 CubeMX 设置&#xff08;同上&#xff09;代码…

239. 滑动窗口最大值

1 问题描述 2 思路 为了每次元素进出的时候&#xff0c;我们都可以得到该窗口内的最大元素&#xff0c;我们需要自己定义一种队列里面包含方法可以获取最大值怎么才能获取队列里的最大值呢&#xff1f;在队列里排序也可以&#xff0c;这里我们采用单调队列&#xff1a;该队列…

innovus gui界面文字大小和对话框大小调整

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f;拾陆楼知识星球入口 uiApp::setfont -dialog

【Docker】Docker容器化技术基础

Docker容器化技术 Docker&#xff08;软件跨环境迁移&#xff09;Docker概念&#xff1a;安装Dockerdocker架构配置Docker镜像加速器 一、Docker命令服务daemon相关的命令镜像相关命令Docker容器相关命令 二、Docker容器的数据卷数据卷概念配置数据卷配置数据卷容器 三、Docker…

Windows系统下添加了新环境变量无需重启电脑激活新环境变量的方法

首先WinR&#xff0c;再输入cmd&#xff0c;进入终端&#xff0c;输入以下命令&#xff1a; set Pathc输入完以上命令回车&#xff0c;如下&#xff1a; 关闭终端后再次打开输入cl&#xff0c;如果输出以下类似信息说明新的环境变量已经添加成功&#xff0c;如下&#xff1a; …

flask-script

# django中&#xff0c;有命令 python manage.py runserver python manage.py makemigrations ...自定制命令&#xff08;django如何自定制命令&#xff09;... -python manage.py init_db excel文件路径 指定表名 # flask启动项目&#xff0c;像djag…

了解HTTP代理日志:解读请求流量和响应信息

嗨&#xff0c;爬虫程序员们&#xff01;你们是否在了解爬虫发送的请求流量和接收的响应信息上有过困扰&#xff1f;今天&#xff0c;我们一起来了解一下。 首先&#xff0c;我们需要理解HTTP代理日志的基本结构和内容。HTTP代理日志是对爬虫发送的请求和接收的响应进行记录的文…

C语言假期作业 DAY 15

一、选择题 1、有如下代码&#xff0c;则 *(p[0]1) 所代表的数组元素是&#xff08; &#xff09; int a[3][2] {1, 2, 3, 4, 5, 6}, *p[3]; p[0] a[1]; A: a[0][1] B: a[1][0] C: a[1][1] D: a[1][2] 答案解析 正确答案&#xff1a; C p 是一个指针数组&#xff0c; p[0] a…

SSM项目-博客系统

在线体验项目&#xff1a;登陆页面 项目连接&#xff1a;huhublog_ssm: 个人博客系统 技术栈&#xff1a;SpringBoot、SpringMVC、Mybatis、Redis、JQuery、Ajax、Json (gitee.com) 1.项目技术点分析 SpringBoot、SpringWeb(SpringMVC)、MyBatis、MySQL(8.x)、Redis(存储验…

Java文件操作(遍历目录中的文件,找到并删除有指定关键字的文件)

对于通过java对文件继续读取和写入的操作推荐看读取文件和写入文件操作 题目 扫描指定目录中的文件&#xff0c;并找到名称中包含指定字符的所有普通文件&#xff08;不包括目录&#xff09;&#xff0c;并后续询问用户是否要删除该文件 题目分析 实际上题目就要求我们对一个…

windows10访问Ubuntu 18.04共享目录(已验证)

1、Ubuntu 18.04安装samba sudo apt-get install samba 2、创建一个共享目录文件夹&#xff0c;并设置777权限 ubt1804是用户名 mkdir/home/ubt1804/lsk sudo chmod 777 /home/ubt1804/lsk 3、添加用户及密码 sudo smbpasswd -a [用户名] 比如用户名为test sudo sm…

HTTPS文件传输

目录 0.https概述1.单钥匙锁2.双钥匙锁 - 防篡改3.双钥匙锁 - 防泄漏4.单双钥匙锁相互配合 0.https概述 HTTPS其实就是HTTP协议加上TLS/SSL&#xff0c;SSL是个加密套件&#xff0c;负责对HTTP的数据进行加密&#xff0c;TLS是SSL的升级版&#xff0c;现在提到HTTPS&#xff0…

外键字段的增删改查、多表查询(子查询和连表查询、正反向、聚合查询、 分组查询、 F与Q查询)、django中如何开启事务

一、 外键字段的增删改查 1.多对多的外键增删改查图书和作者是多对多&#xff0c;借助于第三张表实现的&#xff0c;如果想绑定图书和作者的关系&#xff0c;本质上就是在操作第三方表2.如何操作第三张表问题&#xff1a;让你给图书添加一个作者&#xff0c;他俩的关系可是多对…

怎么才能提升自己工作能力?

表现最好的员工通常是获得加薪和工作晋升的人。您可以采取某些措施来提高您的工作绩效&#xff0c;并帮助您的主管将您视为他们最好的员工之一。在本文中&#xff0c;我们列出了 12 个技巧&#xff0c;可以立即提高您的工作绩效。 什么是工作绩效&#xff1f; 工作绩效是指您…