06:原生云K8S解密|K8S集群安装部署|K8S网络插件

原生云K8S解密|K8S集群安装部署|K8S网络插件

  • K8S
    • K8S集群架构图解
  • K8S部署
    • 仓库初始化
    • kube-master安装
    • 计算节点的安装
      • token管理
    • 配置flannel网络(master主机操作)

K8S

在这里插入图片描述
有大量夸主机的容器需要管理,快速部署应用,快速扩展应用,无缝对接新的应用功能,节省资源,优化硬件资源的使用。

K8S集群架构图解

核心角色:
master (管理节点)
node(计算节点)
image(镜像仓库)
在这里插入图片描述
在这里插入图片描述

K8S部署

仓库初始化

  1. 云主机
    在这里插入图片描述
  2. 安装仓库服务
[root@registry ~]# yum makecache # 更新缓存
[root@registry ~]# yum install -y docker-distrubution
[root@registry ~]# systemctl enable --now docker-distribution
  1. 使用脚本初始化仓库
# 拷贝云盘myos目录到仓库服务器
[root@registry ~]# cd myos
[root@registry ~]# chmod 755 init-img.sh
[root@registry ~]# ./init-img.sh
[root@registry ~]# curl http://192.168.1.100:5000/v2/myos/tags/list
{"name":"myos","tags":["nginx","php-fpm","v1804","httpd"]}

kube-master安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
镜像导入私有仓库

# 把云盘 kubernetes/v1.17.6/base-images中的镜像拷贝到master
[root@master ~]# cd base-images/
[root@master base-images]# for i in *.tar.gz;do docker load -i $(i);done
[root@master base-images]# docker images 
[root@master base-images]# docker images | awk '$2!="TAG"{print $1,$2}'|while read _f _v:do
docker tar ${_f}:${_v} 192.168.1.100:5000/${_f##*/}:${_v};
docker push 192.168.1.100:5000/${_f##*/}:${_v};
docker rmi ${_f}:${_v};
done
# 查看验证
[root@master base-images]# curl http://192.168.1.100:5000/v2/_catalog

tab键设置

[root@master ~]# kubectl completion bash > /etc/bash_completion.d/kubectl
[root@master ~]# kubeadm completion bash > /etc/bash_completion.d/kubeadm
[root@master ~]# exit # 退出系统

安装IPVS代理软件包

[root@master ~]# yum install -y ipvsadm ipset # 做成LVS集群

配置master主机环境 首先要开启网桥设备 可以将各容器之间进行通信
在这里插入图片描述

[root@master ~]# vim /etc/hosts
192.168.1.21 master
192.168.1.31 node-0001
192.168.1.32 node-0002
192.168.1.33 node-0003
192.168.1.100 registry
[root@master ~]# vim /etc/sysctl.d/k8s.conf # 内核模块配置参数
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
[root@master ~]# modprobe br_netfilter
[root@master ~]# sysctl --system

使用kubeadm部署
应答文件在云盘 kubernetes/v1.17.6/config目录

[root@master ~]# mkdir init ;cd init 
# 拷贝kubeadm-init.yaml 到master云主机 init目录下
[root@master init]# kubeadm init --config=kubeadm-init.yaml | tee master-init.log # tee生成日志文件
# 按照提示执行命令
[root@master init]# mkdir -p $HOME/.kube
[root@master init]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master init]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

验证结果

[root@master ~]# kubectl version
[root@master ~]# kubectl get componentstatuses

在这里插入图片描述
kubeadm 命令
config: 配置管理命令
help: 查看帮助
init: 初始命令
join: node加入集群的命令
reset: 还原状态命令
token: token凭证管理命令
version:查看版本

计算节点的安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

token管理

  • 如何获取token
  • 管理token使用kubeadm token 指令
# 列出token
kubeadm token list
# 删除token
kubeadm token delete <token>
# 创建token
kubeadm token create --ttl=0 --print-join-command # 无限期 打印安装命令
# 获取token_hash
# 1、查看安装日志  2、在创建token时候显示  3、使用 openssl 计算得到
[root@master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt |openssl rsa -pubin -outform der |openssl dgst -sha256 -hex

在这里插入图片描述

[root@ecs-proxy 5]# cp -a kubernetes/nodejoin /root/
[root@ecs-proxy 5]# cd ~root/nodejoin/
[root@ecs-proxy nodejoin]# vim nodeinit.yaml
... ...vars:master: '192.168.1.50:6443'token: '这里改成你自己的token'token_hash: 'sha256:这里改成你自己的token ca hash'
... ...
[root@ecs-proxy node-install]# ansible-playbook nodeinit.yaml

验证安装

[root@master ~]# kubectl get nodes
NAME        STATUS     ROLES    AGE     VERSION
master      NotReady   master   130m    v1.22.5
node-0001   NotReady   <none>   2m14s   v1.22.5
node-0002   NotReady   <none>   2m15s   v1.22.5
node-0003   NotReady   <none>   2m9s    v1.22.5

配置flannel网络(master主机操作)

在这里插入图片描述
在这里插入图片描述
上传镜像到私有仓库

# 拷贝 kubernetes/plugins 目录到 master 云主机上
[root@ecs-proxy ~]# rsync -av kubernetes/plugins 192.168.1.50:./
#---------------------------------------------------------------------
[root@master ~]# cd plugins/flannel
[root@master flannel]# docker load -i flannel.tar.xz
[root@master flannel]# docker images|while read i t _;do[[ "${t}" == "TAG" ]] && continue[[ "${i}" =~ ^"registry:5000/".+ ]] && continuedocker tag ${i}:${t} registry:5000/plugins/${i##*/}:${t}docker push registry:5000/plugins/${i##*/}:${t}docker rmi ${i}:${t} registry:5000/plugins/${i##*/}:${t}
done

修改配置文件并安装

[root@master ~]# vim flannel/kube-flannel.yaml
128: "Network": "10.244.0.0/16",        
# 该地址必须与案例3初始化文件 kubeadm-init.yaml 中的 podSubnet 一致
172: image: 192.168.1.100:5000/flannel:v0.12.0-amd64 # 私有仓库
186: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
227行到结尾的所有内容全部删除

验证效果

# 验证节点工作状态
[root@master flannel]# kubectl get nodes
NAME           STATUS    ROLES     AGE     VERSION
master         Ready     master    26h     v1.22.5
node-0001      Ready     <none>    151m    v1.22.5
node-0002      Ready     <none>    152m    v1.22.5
node-0003      Ready     <none>    153m    v1.22.5
# 验证容器工作状态
[root@master ~]# kubectl -n kube-system get pods
NAME                             READY   STATUS    RESTARTS   AGE
coredns-54b6487f4d-t7f9m         1/1     Running   0          64m
coredns-54b6487f4d-v2zbg         1/1     Running   0          64m
etcd-master                      1/1     Running   0          64m
kube-apiserver-master            1/1     Running   0          64m
kube-controller-manager-master   1/1     Running   0          64m
kube-flannel-ds-8x4hq            1/1     Running   0          55m
kube-flannel-ds-c5rkv            1/1     Running   0          55m
kube-flannel-ds-sk2gj            1/1     Running   0          55m
kube-flannel-ds-v26sx            1/1     Running   0          55m
kube-proxy-6gprw                 1/1     Running   0          58m
kube-proxy-6tfn8                 1/1     Running   0          58m
kube-proxy-9t5ln                 1/1     Running   0          58m
kube-proxy-f956k                 1/1     Running   0          64m
kube-scheduler-master            1/1     Running   0          64m

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

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

相关文章

河西走廊潜在蒸散发时空格局变化与气象因素的关系_马亚丽_2023

河西走廊潜在蒸散发时空格局变化与气象因素的关系_马亚丽_2023 摘要关键词 1 数据与方法1.1 数据来源1.2 变化趋势分析1.3 定性分析方法1.3.1 主成分分析1.3.2 相关系数1.3.3 通径分析 1.4 定量分析方法1.4.1 敏感系数1.4.2 贡献率计算 2 结果与分析2.1 ET0多年变化特征2.1.1 E…

Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)

文章目录 用分类数据绘图1 类别散点图2 类别内的数据分布2.1 绘制箱形图2.2 绘制提琴图 3 类别内的统计估计3.1 绘制条形图3.2 绘制点图 Hello&#xff0c;大家好&#xff0c;我是景天&#xff0c;今天我们探讨下seaborn根据分类数据类绘图的方法 用分类数据绘图 数据集中的数…

【前端模板】bootstrap5实现高端手表网页Chrono(适用电商,附带源码)

一、需求分析 高端手表网页是指专门销售高端手表的在线平台或网站。这些网页旨在向消费者展示和销售高级手表品牌的产品。以下是一些常见的功能&#xff1a; 产品展示&#xff1a;高端手表网页提供详细的产品页面&#xff0c;展示不同品牌和型号的高级手表。这些页面通常包括产…

Vim工具使用全攻略:从入门到精通

引言 在软件开发的世界里&#xff0c;Vim不仅仅是一个文本编辑器&#xff0c;它是一个让你的编程效率倍增的神器。然而&#xff0c;对于新手来说&#xff0c;Vim的学习曲线似乎有些陡峭。本文将手把手教你如何从Vim的新手逐渐变为高手&#xff0c;深入理解Vim的操作模式&#…

Python 数据分析(PYDA)第三版(一)

原文&#xff1a;wesmckinney.com/book/ 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 关于开放版本 第 3 版的《Python 数据分析》现在作为“开放获取”HTML 版本在此网站wesmckinney.com/book上提供&#xff0c;除了通常的印刷和电子书格式。该版本最初于 2022 年…

iOS应用提交上架的最新流程

摘要 本篇博客介绍了iOS应用程序上架的最新流程。包括上架基本需求资料、证书的创建和使用、测试设备的添加、描述文件的创建、打包、审核等步骤。 引言 在开发完iOS应用程序后&#xff0c;我们需要将其提交到App Store上架。然而&#xff0c;随着技术的不断发展&#xff0c;…

11.Ubuntu

目录 1. 什么是Ubuntu 1.1. 概述 1.2. Ubuntu版本简介 1.2.1. 桌面版 1.2.2. 服务器版 2. 部署系统 2.1. 新建虚拟机 2.2. 安装系统 2.3. 部署后的设置 2.3.1. 设置root密码 2.3.2. 关闭防火墙 2.3.3. 启用允许root进行ssh 2.3.4. 安装所需软件 2.3.5. 制作快照 …

三种pdf转ppt方法?学会这几招轻松搞定转换

三种pdf转ppt方法&#xff1f;在当今的工作和生活中&#xff0c;PDF和PPT这两种文件格式常常会让我们感到困扰。有时候我们需要将PDF文件转换成PPT格式&#xff0c;以便更好地进行演示或工作汇报。但是&#xff0c;如何快速、准确地完成这项任务呢&#xff1f;本文将为你揭秘三…

引流技术-通过文件中增加联系方式并传播

文章目录 前言文档增加联系方式扩散网盘扩散自建网站借力 注意 前言 很多人在找资料的时候可能都遇到过下图情况&#xff1a; 1、文档最后面留一个自己的联系方式&#xff1b; 2、找的一堆文件中都有相同的情况&#xff1b; 3、一段时间全网搜到的很多相同文件也有这个联系方式…

洞察未来趋势,引领技术革新——2023年全球软件开发大会(QCon上海站)全景解析

在全球科技飞速发展的浪潮中&#xff0c;软件开发行业始终扮演着创新引擎的角色。 作为业界瞩目的年度盛会&#xff0c;2023年全球软件开发大会&#xff08;QCon上海站&#xff09;不仅是一场技术交流的嘉年华&#xff0c;更是一次洞察行业趋势、探索未来发展方向的重要平台。…

【Linux】vim的简单使用

我们知道在Windows下的VS2019是一个集成开发环境&#xff0c;也就是说&#xff0c;集编辑&#xff0c;编译&#xff0c;调试等功能都放在了一起&#xff1b;但是在Linux下&#xff0c;这些步骤都是分开的&#xff0c;我们这篇博客就来说一说vim这个编辑器&#xff0c;它只有编辑…

vit细粒度图像分类(十)TransFG学习笔记

1.摘要 细粒度视觉分类(FGVC)是一项非常具有挑战性的任务&#xff0c;它旨在从子类别中识别对象&#xff0c;这是由于类间固有的微妙差异。现有的大部分工作主要是通过重用骨干网络提取检测到的判别区域的特征来解决这一问题。然而&#xff0c;这种策略不可避免地使管道变得复…

搭建k8s集群实战(四)k8s node 资源管理、避免系统无响应

Kubernetes 的节点可以按照 Capacity 调度。默认情况下 pod 能够使用节点全部可用容量。 这是个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的系统守护进程。 除非为这些系统守护进程留出资源,否则它们将与 pod 争夺资源并导致节点资源短缺问题,从而导致系统无响…

回溯法:回溯法通用模版汇总以及模版应用

从一个问题开始 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4] ] 很容易想到 用两个for循环就可以解决。 如果n为100&#xff0c;k为50呢&#xff0c;那就50层for循…

Java中动态修改注解的值

1. 描述 部分场景需要动态修改注解的值。例如&#xff0c;我们使用自定义注解控制接口流量&#xff0c;如果需要动态修改流量值&#xff0c;可以使用反射的方法实现。 2. 步骤 获取注解从注解中获取memberValues属性(map)使用put方法更新对象的值 3. 代码实现 该部分代码主…

MySQL事务原理的分析

1.事务 并发连接下考虑事务。 事务的本质是并发控制的单元&#xff0c;是用户定义的一个操作序列。这些操作要么都做&#xff0c;要么都不做&#xff0c;是一个不可分割的工作单位。 事务控制语句 ACID特性 原子性&#xff1a;要么都做&#xff0c;要走么都不做。在事务执…

原型中之find()-查找满足条件的第一个元素,并返回该元素的值

array.find(callback(element[, index[, array]])[, thisArg]) callback&#xff1a;必需。要在数组中每个元素上执行的函数。 element&#xff1a;必需。当前正在处理的数组元素。 index&#xff1a;可选。正在处理的元素的索引。 array&#xff1a;可选。调用该方法的数组…

【Java程序设计】【C00247】基于Springboot的农机电招平台(有论文)

基于Springboot的农机电招平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的农机电招平台 本系统分为系统功能模块、管理员功能模块、农机机主功能模块以及使用者功能模块。 系统功能模块&#xff1a;农机电招…

电力升级改造,我发现了这种配电柜高效技巧!

在当今数字化和智能化的时代&#xff0c;电力作为企业和机构运转的生命线&#xff0c;其高效、可靠、安全的管理变得尤为重要。 因此&#xff0c;为了应对不断增长的电力需求和提升电力设备的运行水平&#xff0c;配电柜监控系统应运而生。 客户案例 制造业企业 济宁某企业面…

8868体育助力意甲尤文图斯俱乐部 帮助球队签订新合同

意甲的尤文图斯俱乐部是8868合作体育球队之一&#xff0c;根据意大利媒体的消息&#xff0c;尤文图斯已经决定和费德里科-基耶萨续约&#xff0c;这名球员已经开始思考他的将来了。 费德里科-基耶萨今年26岁&#xff0c;他和尤文图斯的合约到2025年6月30号就结束了。他知道很多…