k8s基础概念以及部署

  • 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.rhkb.cn/news/404382.html

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

相关文章

使用docker-compose运行kafka及验证(无需zookpeer)

前言&#xff1a;要求安装docker-compose kafka镜像版本&#xff1a;apache/kafka:3.8.0 可能存在镜像拉不下来的情况&#xff1a; 1、vim /etc/docker/daemon.json {"data-root":"/data/docker","registry-mirrors": ["https://docker.m…

【C++二分查找】875. 爱吃香蕉的珂珂

本文涉及的基础知识点 C二分查找 LeetCode875. 爱吃香蕉的珂珂 珂珂喜欢吃香蕉。这里有 n 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k &#xff08;单位&#xff1a;根/小时&#xff09;…

Golang基于DTM的分布式事务SAGA实战

SAGA介绍 SAGA是“长时间事务”运作效率的方法&#xff0c;大致思路是把一个大事务分解为可以交错运行的一系列子事务的集合。原本提出 SAGA 的目的&#xff0c;是为了避免大事务长时间锁定数据库的资源&#xff0c;后来才逐渐发展成将一个分布式环境中的大事务&#xff0c;分…

The Sandbox 新提案: 2024 年亚洲和拉丁美洲区块链活动预算

理事会建议&#xff1a; 积极 &#x1f642; 内容 此提案请求为2024年第四季度&#xff0c;The Sandbox 在东南亚和拉丁美洲的主要区块链活动中的激活分配 94,500 美元的 SAND 倡议预算。&#xff08;具体活动列表见下方活动描述&#xff09; 原因 区域团队希望在这些现场活…

一文学会本地部署可视化应用JSONCrack并配置公网地址实现远程协作

文章目录 前言1. Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 前言 本文主要介绍如何在Linux环境使用Docker安装数据可视化工具JSONCrack&#xff0c;并结合cpolar内网穿透工具实现团队在…

【二分查找】--- 进阶题目赏析

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 本篇博客我们继续来了解一些有关二分查找算法的进阶题目。 &#x1f3e0; 寻找峰值 &#x1f4cc; 题目内容 162. 寻找峰值 - 力扣&#…

【python爬虫】邮政包裹物流查询2瑞数6加密

大家好呀&#xff0c;我是你们的好兄弟【星云牛马】&#xff0c;今天给大家带来的是瑞数6的补环境的总结&#xff0c;补环境肯定是需要一些基础补环境知识的&#xff0c;所以建议没有基础的小伙伴可以加入学习群进行学习&#xff0c;有基础的伙伴加入交流起来。 QQ群&#xff…

用C#写一个随机音乐播放器

form1中namespce里的代码如下 public partial class Form1 : Form {public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string folder textBox1.Text;string folderPath folder; // 指定音频文件所在的文件夹路径OpenRandomFi…

thinkphp5漏洞分析之文件包含

目录 一、环境 二、开始研究 三、漏洞分析 四、漏洞修复 五、攻击总结 一、环境 thinkphp官网下载 创建 application/index/view/index/index.html 文件&#xff0c;内容随意&#xff08;没有这个模板文件的话&#xff0c;在渲染时程序会报错&#xff09; 二、开始研究 创…

后端开发刷题 | 链表内指定区间反转【链表篇】

描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转&#xff0c;要求时间复杂度 O(n)O(n)&#xff0c;空间复杂度 O(1)O(1)。 例如&#xff1a; 给出的链表为 1→2→3→4→5→NULL1→2→3→4→5→NULL, m2,n4 返回 1→4→3→2→5→NULL 数据范围&#xff1a; 链表…

java使用itext 直接生成pdf

itext 使用 需求背景itext 的使用依赖简单示例基础设置&#xff08;页面大小、边距、字体等&#xff09;段落内部&#xff0c;特殊设置关键字 字体或颜色生成动态表格页脚展示页数其他设置密码添加水印&#xff08;背景图&#xff09;目录Header, Footer分割 PDF合并 PDF 需求背…

Oracle+ASM+High冗余详解及空间计算

Oracle ASM&#xff08;Automatic Storage Management&#xff09;的High冗余模式是一种提供高度数据保护的策略&#xff0c;它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释&#xff1a; 一、High冗余的特点 1.数据冗余度 在Hi…

ThreadLocal 详解

文章目录 1.什么是Thradlocal2.Thradlocal常见的API3.什么是内存溢出与内存泄漏内存溢出 (Memory Overflow)内存泄漏 (Memory Leak) 4.强 软 弱 虚引用实现区别5.Threadlocal原理分析set方法get方法 6.Threadlocal产生内存泄漏问题断点查看变化 1.什么是Thradlocal ThreadLoca…

Golang基于DTM的分布式事务TCC实战

Golang基于DTM的分布式事务SAGA实战-CSDN博客 源代码&#xff1a;https://github.com/Ssummer520/dtm-gin 我们可以通过canal来监听转账表的binlog来看数据库变更docker-compose 安装canal-CSDN博客 代码在宿主机运行 docker network:bridge docker安装,安装成功后可以访问h…

python提取b站视频的音频(提供源码

如果我想开一家咖啡厅&#xff0c;那么咖啡厅的音乐可得精挑细选&#xff01;又假设我非常喜欢o叔&#xff0c;而o叔只在b站弹钢琴&#xff0c;那这时候我就得想方设法把b站的视频转为音频咯&#xff01; 一、首先打开网页版bilibili&#xff0c;按F12&#xff1a; 二、刷新页面…

力扣爆刷第174天之TOP200五连刷136=140(最小k数、字典序、跳跃游戏)

力扣爆刷第174天之TOP200五连刷136140&#xff08;最小k数、字典序、跳跃游戏&#xff09; 文章目录 力扣爆刷第174天之TOP200五连刷136140&#xff08;最小k数、字典序、跳跃游戏&#xff09;一、LCR 159. 库存管理 III二、450. 删除二叉搜索树中的节点三、440. 字典序的第K小…

【Spark集群部署系列一】Spark local模式介绍和搭建以及使用(内含Linux安装Anaconda)

简介 注意&#xff1a; 在部署spark集群前&#xff0c;请部署好Hadoop集群&#xff0c;jdk8【当然Hadoop集群需要运行在jdk上】&#xff0c;需要注意hadoop&#xff0c;spark的版本&#xff0c;考虑兼容问题。比如hadoop3.0以上的才兼容spark3.0以上的。 下面是Hadoop集群部署…

【Oracle篇】统计信息和动态采样的深度剖析(第一篇,总共六篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

网络协议 十一 ARP,RARP,icmp,websocket,webservice,HTTPDNS,FTP,邮件相关的协议, SMTP,POP,IMAP

ARP 已知IP 求 MAC 的过程 RARP 已知MAC 求 IP 的过程&#xff0c;已被DHCP取代 ICMP websocket 协议&#xff0c;html5中提出的前端使用协议 webservice 技术&#xff0c;已过时 HTTPDNS 之前我们要获得 某一个域名的 IP &#xff0c;要通过DNS协议 去 运营商的ISP 查询&…

计算机毕业设计 饮食营养管理信息系统 平衡膳食管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…