自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 【云原生】K8S的安全机制

Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介, 也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的。

2023-03-15 18:49:42 2027 2

原创 【云原生】K8S对外服务之Ingress

ingress-controller并不是k8s自带的组件,实际上ingress-controller只是一个统称,用户可以选择不同的ingress-controller实现,目前,由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个,其他还有很多第三方维护的ingress-controller,具体可以参考官方文档。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。

2023-03-15 18:36:10 1321

原创 【云原生】K8S的资源配置管理

kubernetes.io/service-account-token:由 Kubernetes 自动创建,用来访问 APIServer 的 Secret,Pod 会默认使用这个 Secret 与 APIServer 通信, 并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中;在数据卷里面使用 ConfigMap,就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容。使用该 ConfigMap 挂载的 Env 不会同步更新。

2023-03-15 18:31:53 543

原创 【云原生】K8S中的pod控制器

而在 deployment中pod模板中创建的存储卷是一个共享的存储卷,多个pod使用同一个存储卷,而statefulset定义中的每一个pod都不能使用同一个存储卷,由此基于pod模板创建pod是不适应的,这就需要引入volumeClainTemplate,当在使用statefulset创建pod时,会自动生成一个PVC,从而请求绑定一个PV,从而有自己专用的存储卷。当节点挂了,重建之后的标识符是不变的,每一个节点的节点名称是不能改变的。如下操作的滚动更新是按照2-0的顺序更新。镜像可以进行版本升级。

2023-03-15 18:28:25 545

原创 【云原生】K8S中PV和PVC

容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的Volume抽象就很好的解决了这些问题。Pod中的容器通过Pause容器共享Volume。这里定义5个PV,并且定义挂载的路径以及访问模式,还有PV划分的大小。

2023-03-03 09:09:13 1325 1

原创 【云原生】K8S调度约束

Kubernetes 是通过 List-Watch(监控) 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里 需要 Controller Manager、Scheduler 和 kubelet(天眼) 的协助才能完成整个部署过程。在

2023-03-03 09:04:53 667

原创 K8S集群+负载均衡层+防火墙 实例

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用 /data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。(3)编写service对应的yaml文件,使用NodePort类型和TCP 30000端口将Nginx服务发布出去。

2023-03-03 09:01:13 1317

原创 【云原生】k8s中Pod进阶资源限制与探针

注:在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以 MB、GB为单位的,1GB 就是1,000,000,000Byte,而操作系统是以2进制为处理单位的,因此检查硬盘容量时是以MiB、GiB为单位,1GiB=2^30=1,073,741,824,相比较而言,1GiB要比1GB多出1,073,741,824-1,000,000,000=73,741,824Byte,所以检测实际结果要比标出的少一些。当 Pod 中的容器退出时通过节点上的 kubelet 重启容器。

2023-02-26 19:59:03 521 1

原创 【云原生】k8s的pod基本概念

pod容器镜像拉取策略 (imagePullPolicy) 三种容器ifNotPresent: 优先使用本地已存在的镜像,如本地没有则从仓库拉取镜像,默认的拉取策略Always: 总算是从仓库拉取镜像,无论本地是否已存在的镜像;标签为“latest”时,默认的拉取策略Never:总是补充仓库拉取镜像,仅使用本地镜像镜像重启策略always:当容器终止退出后,总是重启容器,默认策略ONEailure: 当容器异常退出时 (退出状态码非0) 时,重启容器:正常退出则不重启容器。

2023-02-26 19:56:00 761

原创 【云原生】k8s之Yaml文件详解

没有相关资源,使用 run 命令 --dry-run 选项复制代码已有相关资源,使用 get 命令 --export 选项。

2023-02-21 09:07:13 477

原创 【云原生】k8s中kubectl陈述式资源管理

1、kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口2、kubectl 是官方的CLI命令行工具,用于与apiserver 进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s 各种资源的一种有效途径3.、kubectl 的命令大全k8s中文文档:4、对资源的增、删、查操作比较方便,但对改的操作就不容易了//查看k8s版本信息//查看资源对象简写//查看集群信息//配置kubectl自动补全。

2023-02-21 09:05:37 261

原创 【云原生】kubeadm部署k8s集群、Dashboard UI以及连接私有仓库

部署的总体步骤如下:1、在所有节点上安装Docker和kubeadm2、部署Kubernetes Master3、部署容器网络插件4、部署 Kubernetes Node,将节点加入Kubernetes集群中5、部署 Dashboard Web 页面,可视化查看Kubernetes资源6、部署 Harbor 私有仓库,存放镜像资源。

2023-02-21 09:04:55 385

原创 【云原生】初识Kubernetes的理论基础

K8S有master和work node两种节点master节点上有apiserver、controller-manager 、scheduler 以及使用etcd做K8S集群存储node节点上有kubelet和kube-proxy以及容器引擎(如docker)apiserver是所有服务请求的访问入口controller-manager是负责为pod副本集,命名空间、端点等资源对象以及部署提供控制器。

2023-02-21 08:55:27 201

原创 ansible的剧本(playbook)

playbooks 本身由以下各部分组成(1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行(2)Variables:变量(3)Templates:模板(4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作(5)Roles:角色2.2 修改配置文件并放入/opt/目录下在Ansible中,提供的唯一一个通用的条件判断是when指令,当when指令的值为true时,则该任务

2023-02-13 08:33:14 198

原创 ansible的部署和命令模块

Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。

2023-02-12 18:25:33 123

原创 Docker安全

容器的安全性问题的根源在于容器和宿主机共享内核。如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃。与虚拟机是不同的,虚拟机并没有与主机共享内核,虚拟机崩溃一般不会导致宿主机崩溃。

2023-02-12 18:25:24 1220 1

原创 Docker consul的容器服务更新与发现

服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。

2023-02-12 18:24:49 83

原创 Docker-harbor私有仓库

• Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务• Harbor以 Docker 公司开源的Registry 为基础,提供了图形管理UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAP集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。

2023-02-12 18:24:03 327

原创 Docker 搭建本地私有仓库

v: 把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。在容器中启动私有镜像仓库并将私有仓库的存储目录挂载到宿主机指定目录中,这样做的目的是,如果容器被删除了,存储在容器中的镜像就不会被删掉(no:默认策略,在容器退出时不重启容器。

2023-02-12 18:22:26 196

原创 Dockerfile构建镜像

升级所有包,系统版本和内核,改变软件设置和系统设置。这里因为升级太浪费时间,所以没升级。yum -y update(所有都升级和改变)

2023-02-12 18:22:10 72

原创 Docker的数据管理

• 但是当编写一个新的Dockerfile文件来基于A镜像构建一-个镜像( 比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。(5) 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件,只是这个文件在Docker容器中不可见了。

2023-02-12 18:19:57 80

原创 Docker的资源控制管理

使用--cpu-period即可设置调度周期,使用--cpu-quota即可设置在每个周期内容器能使用的CPU时间。#创建两个容器为 c1 和 c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为1/3和2/3。CFS周期的有效范围是1ms~1s, 对应的--cpu-period的数值范围是1000~1000000。容器的CPU 配额必须不小于1ms,即--cpu-quota 的值必须>= 1000。可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少CPU时间。

2023-02-12 18:18:50 287

原创 Docker网络模式

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP, 同时Docker网桥是 每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过 Container-IP 访问到容器。

2023-02-12 18:18:14 329

原创 初识Docker

• Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源• Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”• Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

2023-02-12 18:17:25 256

原创 docker 安装报错

这个报错是container-selinux版本低或者是没安装的原因 找到container-selinux的yum源安装即可。然后在安装docker-ce就可以了。docker 直接安装最新版。

2023-01-29 14:33:57 140

原创 ELK 企业级日志分析系统

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式。

2022-12-16 16:37:55 403

原创 【分布式应用】GFS分布式文件系统

GlusterFS是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS(传统的分布式文件系统技术)传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。

2022-12-11 23:01:46 74

原创 rsync远程同步

rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。rsync 的官方站点的网址是 rsync.samba.org/,目前最新版本是 3.1.3,由 Wayne Davison 进行维护。作为一种最常用的文件备份工具,rsync 往往是 Linux 和 UNIX 系统默 认安装的基本组件之一。

2022-12-11 21:30:52 466

原创 Redis高可用之主从复制、哨兵、cluster集群

在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。三种模式需要注意修改不同的配置文件。主从复制:vim /etc/redis/6379.conf哨兵模式:vim /opt/redis-5.0.7/sentinel.conf。

2022-12-11 21:16:53 401

原创 Redis 高可用之持久化

在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务( 如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。

2022-12-11 20:55:04 354

原创 MySQL高可用之MHA集群

MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点故障的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

2022-12-11 20:42:04 124

原创 MySQL的主从复制与读写分离详解

读写分离,基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、 DELETE) ,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。但是数据库的"读”(读10000条数据可能只要5秒钟)。所以读写分离,解决的是,数据库的写入,影响了查询的效率。在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个

2022-12-04 20:07:05 395

原创 MySQL数据库的SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理邓功能。在数据表中删除指定的数据记录delete 清空表后,返回结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用delete from删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增长创建临时表临时表创建成功之后,使用show tables命令是看不到创建的临时表的,临时表会在连接退出后被销毁。如果在退出连接之前,也可以执行

2022-12-04 19:48:33 1719

原创 MySQL数据库之存储引擎

MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能MySQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式MySQL常用的存储引擎MySQL数据库中的组件,负责执行实际的数据I/O操作MySQL系统中,存储引擎处于文件系统之.上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文

2022-12-04 19:25:39 398

原创 MySQL数据库之事务

ACID,是指在可靠数据库管理系统(DBMS) 中,事务(transaction)应该具有的四个特性:原子性(Atomicity) 、一致性(Consistency )、隔离性(Isolation) 、持久性(Durability) 。这是可靠数据库所应具备的几个特性。原子性:事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性:指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。隔离性:指在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。持久

2022-12-04 17:53:31 232

原创 MySQL数据库管理及用户管理以及数据库用户授权

use 库名;desc 表名;desc 表名\Gshow create table 表名;

2022-11-27 19:57:25 600

原创 MySQL的概念

• 面向Windows操作系统• 简单、易用一款深受欢迎的开源关系型数据库Oracle旗下的产品遵守GPL协议,可以免费使用与修改特点:性能卓越、服务稳定开源、无版权限制、成本低多线程、多用户基于C/S(客户端/服务器)架构安全可靠。

2022-11-27 18:24:56 5330

原创 Haproxy搭建web群集

是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。

2022-11-27 18:10:06 45

原创 Nginx重写功能(rewrite与location)

直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网。这里是直接转发给后端应用服务器了,也可以是一个静态首页}rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,例如:id=1&u=str 只对/kgc/index.php重写。

2022-11-17 21:09:45 712

原创 Nginx+Tomcat负载均衡、动静分离

每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后, 那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。和ip hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器, 但是也会造成分配不均的问题, 这种模式后端服务器为缓存时比较好。服务端接收来自客户端的请求中。

2022-11-17 20:57:43 696

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除