k8s基础概念以及部署

news2024/11/15 10:43:41
  • kubernetes基础概念

    • 来历

      • kubernetes以谷歌borg为前身,基于谷歌15年生产环境经验开源的一个项目。k8s是一个开源,的分布式的容器编排技术。

    • k8s的优势

      • 对比对象

        • 裸容器

          • 例如docker,直接将容器部署在宿主机的方式被称为裸容器。

          • 缺点

            • 纯粹的裸容器会导致宿主机宕机后宿主机上的容器不可用,且无法自动恢复。

            • 健康检查方式不到位,导致容器在运行,但是服务不正常

            • 应用程序部署,回滚,扩缩容困难

              • 回滚,对比于滚动更新

            • 容器数量庞大带来的管理较为困难

        • 优点

          • 利用多节点可以达到高可用需求

          • 有自己的健康检查方式

          • 支持自动化的扩缩容

          • 能够轻松应对大数量容器

      • 对于开发人员的意义

        • 相比于老的测试环境,为了省资源没有部署日志系统,查看日志麻烦,k8s部署后可以轻松查看日志。

        • 代码的发布,上线支持自动化无人干预

        • 不用考虑网络代码,k8s自动实现

        • 各种环境轻松实现

      • 对于运维人员的意义

        • 减去重复性操作,繁琐操作的流程

        • 减少人为原因造成的故障

        • 故障的自动恢复

        • 扩缩容自动化,减少时间

        • 反向代理设置简单

        • 高可用更加灵活,可靠,自动

        • 集群搭建秒级化

        • 不用考虑端口冲突

    • k8s的架构

      • 可以看出分为master和worker(node)节点和数据库etcd

        • master节点

          • 管理控制节点不建议运行任何组件

            • kubeadm管理节点以容器方式运行在master主机

            • 二进制安装管理节点以守护进程方式运行

          • kube-APIserver(核心)

            • 集群网关,是整个集群的控制中枢,负责各个模块的通信以及集群信息存储到etcd中.也是用户访问集群部署资源的通道。

            • 在做master的高可用的时候实际上是对该组件做的高可用。

          • kube-scheduler

            • 资源调度

              • 负责将pod调度到工作节点

              • 选择一个健康的节点让pod分配到该节点运行

              • 如果没有合适的节点,则会挂起该pod知道健康节点出现

          • kube-controller-manager

            • 负责维护集群状态,如故障检测,内存垃圾回收,滚动更新等。

              • k8s提供了多种控制器

                • replication

                • controller

                • daemonset-controller

        • node节点

          • kubelet(核心)

          • kube-proxy

            • 实现不同节点之间pod的通信

          • docker engine

            • 提供容器运行时

            • k8s本事不提供容器运行时,但提供了接口

              • 支持的容器运行时

                • docker

                • containerd

                • CRI-O

                • k8s CRI

        • edcd

          • 分布式的数据库,奇数台部署

            • 持久性,分布式,轻量级的键值数据存储组件

            • 3台容错1台,5台容错2台以此类推

    • k8s网络插件

      • flannel

        • 基于三层的overlay网络

          • 每台主机都是一个路由器,每个主机内部的pod网段都是私有的,类似于一个小型的互联网

            • 适合中小型部署

      • calico

        • 基于传输层的应用层网络,适用bgp边界网关协议。

          • 适合大规模部署

    • k8s的部署

      • 配置要求

        • k8s随着版本不同负载能力也不同

          • v-1.23部署准则

            • 集群不要超过5k个

            • 每个节点pod不能超过110个

            • 集群总共pod不能超过15w

            • 集群总容器不能超过30w

      • 部署过程

        • 基础环境(三节点同样部署)

          • 内核版本不能太落后,本案例所采用6.8的linux版本

          • 安装有docker-ce

            • docker-ce的daemon.json中采用了systemd的驱动器。

          • 根据配置要求修改主机名,添加域名记录

          • 关闭交换分区

            • swapoff -a

            • 打开fstab文件注释掉swap记录

        • 配置k8syum源并安装,设置kubelet开机自启(三节点同样部署)

          • cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum clean all yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0 systemctl enable kubelet

        • 初始化配置(单节点操作)

          • kubeadm config print init-defaults > init-config.yaml

            • 修改配置文件

              • advertiseaddress: 192.168.10.101

                • 填写master的IP地址

              • name: k8s-master

                • master节点名称

              • imageRepository: registry.aliyuncs.com/google_containers

                • 镜像仓库

              • 添加一条

                • podSubnet: 10.244.0.0/16

                  • pod分配的地址

          • 该命令还有其他的选项可用

          • 如果有list列出的镜像资源,可以省去拉取步骤

            • kubeadm config images pull --config=init-config.yaml

            • 其他节点同样也需要这些镜像

          • 初始化k8s

            • kubeadm init --config=init-config.yaml

              • 执行完命令后会生成令牌,该令牌妥善保存,是其他节点加入该集群的命令

            • 二次初始化方法

              • 先执行kubeadm reset

                • 在执行初始化动作

            • 在初始化后的屏幕输出会出现对应的提示,按提示操作即可

              • source ~/.bash_profile

            • 最后

              • kubectl get nodes

                • 能查看到对应的节点信息表示成功初始化
                  • 这里我只开了master主机,所以node主机显示notreday

              • kubectl get pod -A

                • 要能查看到pod状态

                    • 红色部分因为没有安装网络插件所以运行不正常

        • 网络插件的安装

          • 先要获取对应的yaml文件,然后拉取所需镜像,在执行命令应用

            • 以calico为例

              • 获取yaml文件

                • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

              • kubectl create -f calico.yaml

              • 就部署成功了

        • 实现自动扩缩容和性能监控的插件

          • metrics-server

            • 需要注意该插件与k8s版本对应问题

              • 详情参考官方文档

                • https://kubernetes.io/zh-cn/

          • 修改文件

            • 在args单元内添加两条记录

              • 一个是使用的证书类型

              • 一个是镜像仓库地址

          • kuber create -f components.yaml

          • 最后测试安装结果

            • kubectl top node

              • 能查看到对应的性能信息

        • dashboard部署

          • 一个k8s的web管理界面

            • 核心文件官方下载资源地址: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard

            • 创建dashboard的工作目录

              • mkdir -p /opt/k8s/dashboard

              • 进入该目录上传dashboard所需的yaml文件

                • dashboard-user.yaml

                  • 登录用户相关信息

                • dashboard.yaml

                  • 插件本身配置

              • 批量执行yaml文件

                • kubectl ceate -f .

            • 访问

              • 需要用谷歌或者火狐浏览器

                • 因为采用自签名证书所以需要忽略证书报错
                  • --test-type --ignore-certificate-errors 注意与前面字符的空格,注意用https进行访问

              • 查看dashboard的端口号

                • kubectl get svc 服务名 -n 命名空间

                  • 根据查到的端口进行访问
              • 访问需要令牌

                • 令牌的获取命令

                  • kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

                    • 复制令牌到认证页面即可

        • helm插件

            • k8s的包管理工具

复制全部内容到xmind即可形成条理性笔记。 

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

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

相关文章

性能测试之中间件:什么是 kafka 和 MQ ?

在如今这个数据驱动的时代&#xff0c;中间件在性能测试中扮演着至关重要的角色。你是否曾听说过Kafka和MQ&#xff0c;却不清楚它们在实际应用中具体的作用是什么&#xff1f;让我们一起来揭开它们的神秘面纱。 Kafka和MQ究竟是什么&#xff1f;它们在性能测试中如何发挥作用…

C#基于SkiaSharp实现印章管理(6)

除了文本&#xff0c;印章设计模块的绘图功能已经差不多了。在实现文本绘制之前&#xff08;主要是文本绘制相对比较麻烦&#xff09;&#xff0c;本文先实现将印章导出为pdf或图片的功能。   不论是在控件中绘制&#xff0c;还是在图片或pdf文件中绘制印章&#xff0c;对Ski…

基于web网上村委会业务办理系统pf

TOC springboot472基于web网上村委会业务办理系统pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&…

电话机器人解决销售难题

电销机器人简单理解就是替电销人员打电话的机器人&#xff0c;都说是机器人了&#xff0c;全天保持无休状态肯定是不在话下的。智能外呼电话机器人每日通话量大概在800-1000通&#xff0c;一个AI电话机器人就能顶3个销售人员的日通话量了&#xff0c;电话营销机器人能在批量上传…

高校中的电能消耗管理

2013年1月&#xff0c;住建部发布《绿色建筑行动方案》&#xff08;国办发「2013」1号&#xff09;。要求学校、医院等大型公共建筑全面执行绿色建筑标准。安全耐久、生活便利不再是绿色建筑的评价唯一指标&#xff0c;资源节约、环境宜居和健康舒适同样也是绿色建筑的评价指标…

5G+工业互联网产教融合创新实训室解决方案

一、建设背景 随着第五代移动通信技术&#xff08;5G&#xff09;的快速普及和工业互联网的迅猛发展&#xff0c;全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力&#xff0c;为工业自动化、智能制造等领域带来了革命性的…

【NXP-MCXA153】PWM驱动移植

介绍 ‌PWM&#xff08;‌Pulse Width Modulation&#xff09;‌&#xff0c;‌脉冲宽度调制&#xff0c;‌是一种数字量控制模拟量的技术&#xff0c;‌常用于电机驱动、显示屏背光控制、逆变控制等&#xff1b;NXP-MCXA153开发板上有多路CTimer定时器&#xff0c;可以用来生…

6. 数据结构—串的匹配算法

1.BF算法(暴力算法) //模式匹配(暴力算法) int Index(SString S,SString T){int i1,j1;while(i<S.length&&j<T.length){if(S[i]T[i]){i;j;}else{ii-j2; //最开始匹配的位置的后一个j1; //从头匹配 }}if(j>T.length)return i-T.length;return return 0…

【Vue3】配置路由规则props

【Vue3】配置路由规则props 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的…

Ubuntu启用root用户

1.1 命令行的组成 在启用 root 用户之前&#xff0c;先来了解一下&#xff0c;ubuntu 命令的组成。 打开 ubuntu 的终端&#xff0c;可以看到命令行是由 topeetubuntu:~$ 这几个字母组成&#xff0c;如下图所示&#xff1a; 对应的说明框图如下&#xff1a; 1.2 由普通用户切…

基于机器视觉的智能图像处理与分析系统(MATLAB图片处理,GUI界面)

灰度&#xff0c;二值&#xff0c;去噪&#xff0c;均衡&#xff0c;锐化&#xff0c;截取&#xff0c;边缘检测&#xff0c;都可做。 ☆图像灰度化&#xff0c;二值化 ☆图像相加&#xff0c;相减等 ☆图像旋转&#xff0c;图像裁剪 ☆图像灰度变换&#xff0c;gamma变换&…

Github 2024-08-19 开源项目周报Top15

根据Github Trendings的统计,本周(2024-08-19统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目7JavaScript项目3TypeScript项目3Dart项目2HTML项目1PowerShell项目1Clojure项目1C++项目1Rust项目1Bootstrap 5: Web上开发响应式、…

微服务:微服务保护

&#x1f4a5; 该系列属于【SpringBoot基础】专栏&#xff0c;如您需查看其他SpringBoot相关文章&#xff0c;请您点击左边的连接 目录 一、引言 1. 什么是雪崩问题 2. 雪崩问题产生的原因 3. 解决思路 二、微服务保护 1. 服务保护方案 &#xff08;1&#xff09;请求限…

03 serv00搭建WordPress

第一步 下载 serv00 官方教程 按官方教程下载 WordPress 压缩包&#xff0c;解压&#xff0c;将 WordPress 项目文件夹重命名为 public_html&#xff08;先删除原来的 public_html&#xff09; ‍ 第二步 安装 完成以上步骤后访问你的网站&#xff0c;开始安装 WordPress …

ESXi中设置网卡为混杂模式

为了测试系统网络问题&#xff0c;将ESXi中设置网卡设为混杂模式&#xff0c;如图 设置方法为进入编辑状态&#xff0c;然后将混杂模式选中&#xff1a; CBSD关于网络的一段描述 About bhyve networking By default, virtual machines use the tap interface, which CBSD aut…

WiFi的IP和电脑IP一样吗

在当今数字化时代&#xff0c;互联网已成为我们生活、学习和工作不可或缺的一部分。而网络连接的核心要素之一&#xff0c;就是IP地址。无论是通过WiFi接入网络的设备&#xff0c;还是直接连接至路由器的电脑&#xff0c;它们都拥有各自的IP地址。然而&#xff0c;这两个IP地址…

SQL 布尔盲注 (injection 第六关)

简介 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络攻击方式&#xff0c;通过向SQL查询中插入恶意的SQL代码&#xff0c;攻击者可以操控数据库&#xff0c;SQL注入是一种代码注入攻击&#xff0c;其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&am…

大华 DSS 数字监控系统 group_saveGroup SQL 注入漏洞复现

0x01 产品简介 大华 DSS 数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。 0x02 漏洞概述 大华 DSS 数字监控系统 group_saveGroup 接口存在SQL 注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞…

计算机毕业设计pyspark+django+scrapy租房推荐系统 租房大屏可视化 租房爬虫 hadoop 58同城租房爬虫 房源推荐系统

用到的技术: 1. python 2. django后端框架 3. django-simpleui&#xff0c;Django后台 4. vue前端 5. element-plus&#xff0c;vue的前端组件库 6. echarts前端可视化库 7. scrapy爬虫框架 基于大数据的租房信息推荐系统包括以下功能&#xff1a…

一、什么是 mvvm? MVC、MVP、MVVM三种模式的区别与详解

简介 MVC、MVP、MVVM都是常见的软件架构模式。 MVC&#xff08;Model-View-Controller&#xff09;架构模式中&#xff0c;将应用程序分为三个主要部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&…