k8s 集群部署

news2024/12/23 12:43:05

目录

1. 集群环境初始化

2. 所有节点安装kubeadm

3. 拉取集群所需镜像

4. 集群初始化

5. 安装flannel网络插件

6. 扩容节点

7. 设置kubectl命令补齐


官网:

https://v1-23.docs.kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

主机名

ip

角色

docker

192.168.67.10

reg.westos.org,harbor仓库

k8s1

192.168.67.11

master,k8s集群控制节点

k8s2

192.168.67.12

node,k8s集群工作节点

k8s3

192.168.67.13

node,k8s集群工作节点

所有节点禁用selinux和防火墙

所有节点同步时间和解析

所有节点安装docker-ce

所有节点禁用swap,注意注释掉/etc/fstab文件中的定义

1. 集群环境初始化

所有k8s集群节点执行以下步骤:

禁用swap,注意注释掉/etc/fstab文件中的定义

swapoff -a
vim /etc/fstab

所有节点安装docker-ce

cd /etc/yum.repos.d/
vim docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0

[centos]
name=extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/
gpgcheck=0

yum install -y docker-ce
systemctl enable --now docker
vim /etc/docker/daemon.json

{
        "registry-mirrors": ["https://reg.westos.org"],
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
                "max-size": "100m"
        },
        "storage-driver": "overlay2"
}


systemctl  restart docker

修改内核参数

vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
sysctl --system

所有节点同步docker配置,以及拷贝harbor仓库的证书

cd /etc/docker/
ls
scp -r certs.d/ k8s1:/etc/docker/

确保所有k8s节点可以从私有仓库下载镜像

docker pull nginx

2. 所有节点安装kubeadm

vim /etc/yum.repos.d/k8s.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0

yum install -y kubelet-1.23.17-0 kubeadm-1.23.17-0 kubectl-1.23.17-0
systemctl enable --now kubelet

3. 拉取集群所需镜像

docker load -i k8s-v1.23.17.tar

登录仓库 

先在harbor仓库上新建一个项目

上传镜像

docker images |grep google_containers | awk '{print $1":"$2}' | awk -F/ '{system("docker tag "$0" reg.westos.org/k8s/"$3"")}'  ##镜像名称不一致需要tag 一下

docker images  |grep k8s | awk '{system("docker push "$1":"$2"")}'

4. 集群初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s --kubernetes-version v1.23.17

设置环境变量   (注意没有设置变量会有以下报错)

export KUBECONFIG=/etc/kubernetes/admin.conf
写入环境变量文件,确保重启后依然生效
vim .bash_profile
export KUBECONFIG=/etc/kubernetes/admin.conf

查看集群状态

kubectl get node

当前节点还没有就绪,是因为没有安装网路插件,pod还没运行

kubectl get pod -A

5. 安装flannel网络插件

下载flannel网络插件  (GitHub不好下载)

wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

修改镜像位置  (这边是提前准备好的文件kube-flannel.yml)

vim kube-flannel.yml

新建项目仓库

下载上传镜像

docker load -i flannel-v0.22.3.tar
docker images |grep flannel | awk '{print $1":"$2}' | awk '{system("docker tag "$0" reg.westos.org/"$0"")}'  #同上

docker push reg.westos.org/flannel/flannel:v0.22.3
docker push reg.westos.org/flannel/flannel-cni-plugin:v1.2.0

确保镜像上传成功

部署网络插件

kubectl apply -f kube-flannel.yml
kubectl  -n kube-flannel get pod

kubectl get node
kubectl get pod -A

6. 扩容节点

kubeadm join 192.168.67.11:6443 --token dpjcwo.cg9wku0rxgsocvm5 \
        --discovery-token-ca-cert-hash sha256:b3706bcec8d94acc4a80146d0c1961b13bc5b7fe61a2ad936e0094db29dc79bd

kubectl get node

7. 设置kubectl命令补齐

yum install -y bash-completion
echo "source <(kubectl completion bash)" >> ~/.bashrc
source  ~/.bashrc

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

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

相关文章

SAP业务从ECC升级到SAP S/4HANA有哪些变化?有哪些功能得到增强?

SAP在2015年推出了新一代商务套件SAP S/4 HANA。 SAP S/4 HANA (全称SAP Business suite 4 SAP HANA),这款新产品完全构建于目前先进的内存平台SAP HANA 之上&#xff0c;同时采用现代设计理念&#xff0c;通过SAP Fiori 提供精彩的用户体验 (UX)。提供比ECC更强大的功能。S/4h…

Docker容器技术实战2

4、docker仓库 docker hub 注册账号&#xff1a;https://hub.docker.com/ 上传自己的镜像仓库 创建自己的仓库webserver 拉取镜像 Registry工作原理 配置镜像加速器 搭建私有仓库 上传镜像 在server1上 在server2&#xff08;纯净&#xff09;上 强制使用非加密私有仓库 5、…

NEFU数字图像处理(三)图像分割

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中&#xff0c;我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分&#xff0c;背景是指和前景不相关的部分。例如&#xff0c;对于一张人物照片&#xff0c;人物就是前景&…

百货中心供应链管理系统

毕业设计说明书 百货中心供应链管理系统 百货中心供应链管理系统 摘要 近年来&#xff0c;随着计算机技术的发展&#xff0c;以及信息化时代下企业对效率的需求&#xff0c;计算机技术与通信技术已经被越来越多地应用到各行各业中去。百货中心作为物流产业链中重要的一环&a…

Cesium弹窗可随地图移动

目录 项目地址实现效果实现方法 项目地址 https://github.com/zhengjie9510/webgis-demo 实现效果 实现方法 handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas) handler.setInputAction((click) > {if (listener) {listener()listener undefinedthis.v…

黑客在Pwn2Own Toronto上以58个零日漏洞赚取超过100万美元

Pwn2Own Toronto 2023黑客大赛已经圆满结束&#xff0c;安全研究人员通过攻击消费类产品的58个零日漏洞&#xff08;以及多个漏洞碰撞&#xff09;赚取了1,038,500美元。此次比赛由趋势科技的零日倡议&#xff08;Zero Day Initiative&#xff0c;简称ZDI&#xff09;组织&…

电子电器架构 —— 车载网关初入门(二)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他…

WMS基础流程和设计

文章目录 一、WMS的含义和系统综述1.1 WMS含义1.2 系统综述 二、WMS系统关键概念2.1 概念解释2.1.1 区域2.1.2 波次管理2.1.3 作业2.1.4 提货方式2.1.5 批号要求2.1.6 容器2.1.7 暂存区2.1.8 复核台2.1.9 补货2.1.10 订单类别 2.2 仓储作业中的岗位 三、WMS基础资料的内容及初装…

剑指JUC原理-2.线程

创建和运行线程 直接使用Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务} }; // 启动线程 t.start();--------------------------------------------------// 构造方法的参数是给线程指定名字&#xff0c;推荐 Thread t1 new Thread(&…

力扣 三数之和 双指针 java

Problem: 15. 三数之和 时间复杂度: O ( n 2 ) O(n^2) O(n2) &#x1f351; AC code class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res new ArrayList<>();int len nums.length; if(len < 3…

【卷积神经网络】YOLO 算法原理

在计算机视觉领域中&#xff0c;目标检测&#xff08;Object Detection&#xff09;是一个具有挑战性且重要的新兴研究方向。目标检测不仅要预测图片中是否包含待检测的目标&#xff0c;还需要在图片中指出它们的位置。2015 年&#xff0c;Joseph Redmon, Santosh Divvala 等人…

No173.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

队列概念|循环队列的实现

前言 今天我们将学习循环队列实现&#xff0c;我们首先介绍队列的概念和结构&#xff0c;之后一步步讲解循环队列由来与实现。 一、队列的概念与结构 1、队列的概念 队列&#xff1a; 只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。队列是…

3.72 Command Buffer及URP概述

一、Command Buffer 1.概念 CommandBuffer携带一系列的渲染命令&#xff0c;依赖相机&#xff0c;用来拓展渲染管线的渲染效果。而且可以指定在相机渲染的某个点执行本身的拓展渲染。Command buffers也可以结合屏幕后期效果使用。 简单来说就是可以在渲染流程中插入一些自定…

群智能算法之模拟退火算法

1.模拟退火算法简介&#xff1a; 2.模拟退火算法的关键点&#xff1a; &#xff08;1&#xff09;随机的更新可行解x,判断可行解x对应的函数值和原来函数值之间的大小&#xff1a;如果优于原来的函数值&#xff0c;则让新的可行解x为问题的解&#xff1b;否则以一定的概率(大于…

centos7 部署 Flink

1. 准备 安装的前提是虚拟机里已安装了jdk 去官网下载 Flink 所有版本下载地址&#xff1a;https://archive.apache.org/dist/flink/ 找到下图的安装包&#xff0c;下载即可 下载完后&#xff0c;将其上传至虚拟机的某个地方&#xff0c;本人将其放在 /home/flink/ 下 解压…

nacos面试题

Nacos中保证的是CP还是AP&#xff1f; 通常我们说&#xff0c;Nacos技能保证CP&#xff0c;也能保证AP&#xff0c;具体看如何配置&#xff0c;但其实只不过是Nacos中的注册中心能保证CP或AP&#xff0c;Nacos中的配置中心其实没什么CP或AP&#xff0c;因为配置中心的数据是存在…

2023.10.28 关于 synchronized 原理

目录 synchronized 特性 synchronized 优化机制 锁升级&#xff08;锁膨胀&#xff09; 其他优化机制 锁消除 锁粗化 synchronized 特性 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转为悲观锁开始是轻量级锁&#xff0c;如果锁被持有的时间较长&#xff0c…

水果百科网站 vue+uniapp微信小程序设计与实现

设计并实现了鲜而廉水果微信小程序。系统选用java语言&#xff0c;应用Springboot框架&#xff0c; MySQL为后台数据库。系统主要包括用户、水果百科、水果视频、交流论坛等功能模块。 经过认真细致的研究&#xff0c;精心准备和规划&#xff0c;最后测试成功&#xff0c;系统可…

[导弹打飞机H5动画制作]飞机与导弹的碰撞检测

界面参考: 代码参考: this.btnShootTruck.addEventListener("click", startShoot); var _this = this; _this.ShootFire.stop(); _this.ShootFire.alpha = 0; //_this.AsyPlaneObj.gotoAndStop(0); _this.AsyPlaneObj.alpha = 1; _this.AsyPlaneObj.BombPlaneObj.al…