- 博客(91)
- 收藏
- 关注
原创 kubernetes 安全机制
目录一、 认证(Authentication)1.1.三种认证方式1.2.需要被认证的访问类型1.3.安全性说明1.4.证书颁发1.5.kubeconfig1.6.Service Account1.7.Secret 与 SA 的关系1.7.1.Kubernetes 设计了一种资源对象叫做 Secret,分为两类1.7.2.Service Account 中包含三个部分二、鉴权(Authorization)2.1.API Server 目前支持以下几种授权策略2.1.1.RBAC 相对其它访问控制方式,拥有以
2024-06-06 22:04:05 839
原创 k8s 对外服务之 Ingress
对集群内部,它不断跟踪pod的变化,更新 endpoint 中对应 pod 的对象,提供了 ip 不断变化的 pod 的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对 pod 进行访问。Ingress 是 Kubernetes 中用于管理对集群内服务的外部访问的 API 对象。它允许您将 HTTP 和 HTTPS 路由流量到集群中的服务,通过定义规则,Ingress 可以将传入的请求路由到适当的服务。
2024-06-04 21:54:18 703
原创 Kubernetes配置资源管理 Secret与ConfigMap
在 K8s 中,Secret 是用于存储敏感信息的对象,如密码、token 令牌和 SSH 密钥。这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险;这些信息以加密形式存储,并且只能被授权的 Pod 访问。通过使用 Secret,可以更安全地管理应用程序所需的敏感数据。也就是说 K8s 解决了我们和 Docker 使用的一些弊端,比如:环境变量、存储问题都要去重新编辑 Dockerfile,而且密码还是明文的。
2024-06-03 19:14:42 881
原创 Kubernetes集群Pod控制器
Pod 控制器是一种 K8s 对象,设计用于管理和维护 Pod 实例。它们不是直接操作 Pod,而是通过与 K8s API 交互来间接控制 Pod,从而保证即使面对节点故障、Pod 终止或其他意外情况,也能维持应用的高可用性和期望的部署配置。自动扩缩容根据预设策略自动增加或减少Pod副本的数量,以应对负载变化或确保服务的高可用性。自我修复当检测到Pod由于各种原因(如节点故障、容器崩溃)不再运行时,控制器会自动创建新的Pod副本以替换故障实例,保持预期的Pod数量和配置。滚动更新。
2024-06-02 20:45:26 956
原创 Kubernetes集群存储卷Valume介绍
PV 全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,这个通常都是由运维工程师来定义。可以理解为磁盘分区。PV 是 Kubernetes 中用于表示持久化存储资源的对象。它可以与 Pod 绑定,使 Pod 能够访问和使用持久化存储。在创建 PV 时,可以指定回收策略来定义当 PV 不再使用时如何处理。Retain(保留):当 PV 不再使用时,保留 PV 的状态和数据,不进行自动删除。管理员需要手动清理 PV 中的数据;
2024-05-30 17:34:30 1029
原创 K8s集群中的Pod调度约束:污点、容忍与驱逐
节点亲和性让 Pod 倾向或强制部署在特定节点上,而 Taint 则是节点用来拒绝不兼容 Pod 的机制。每个节点可设多个 Taint,拒绝不容忍这些 Taint 的 Pod 接入。通过 kubectl taint 命令可以给 Node 添加污点限制,Node 被设置上污点之后就和 Pod 之间存在了一种相斥的关系,可以让 Node 拒绝 Pod 的调度执行,甚至将 Node 已经存在的 Pod 驱逐出去。污点的组成格式为:key=value:effect。
2024-05-30 15:27:55 735
原创 K8s集群中的Pod调度约束亲和性与反亲和性
Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。其主要考虑的问题如下:●公平:如何保证每个节点都能被分配资源●资源高效利用:集群所有资源最大化被使用●效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作●灵活:允许用户根据自己的需求控制调度的逻辑。
2024-05-29 14:59:23 797
原创 Kubernetes中Pod容器的资源限制和探针配置
在 K8s 中,对 Pod 容器的资源限制主要围绕着两个关键参数:request 资源和 limit 资源,用于配置 CPU 和内存的使用情况;避免资源竞争和不必要的浪费,同时确保 Pod 在运行时具有足够的资源支持。官网示例:探针是由 kubelet 对容器执行的定期诊断。容器的探针是一种关键的机制,用于监测和管理容器的健康状态,确保容器在各种情况下都能正常运行。通过配置适当的探针,可以提高容器的可靠性和稳定性,确保容器能够有效应对各种运行时情况,并及时处理健康状态的变化。
2024-05-27 19:10:08 799
原创 Pod详解
运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享Network、UTS及IPC命令空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。Pod资源中针对各容器提供网络命令空间等共享机制的是底层基础容器pause,基础容器(也可称为父容器)pause就是为了管理Pod容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。
2024-05-27 18:34:12 788
原创 K8s集群的声明式资源管理方法
通过使用 yaml 或 josn 文件对资源配置,然后再实现对资源的管理。适合于对资源的修改操作声明式资源管理方法依赖于资源配置清单文件对资源进行管理;资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里。
2024-05-23 18:14:35 976
原创 kubectl详解
通过 kubectl 命令的方式来实现对资源进行管理,简而言之,就是通过一条命令来实现操作,如查看节点信息等;对资源的增、删、查操作比较方便,但对改的操作就不容易了。kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。kubectl 的命令大全。
2024-05-21 20:47:31 1057
原创 k8s kubeadm 安装
4、部署 Kubernetes Node,将节点加入Kubernetes集群中。5、部署 Dashboard Web 页面,可视化查看Kubernetes资源。http://192.168.190.101:30241 或。1、在所有节点上安装Docker和kubeadm。6、部署 Harbor 私有仓库,存放镜像资源。2、部署Kubernetes Master。3、部署容器网络插件。
2024-05-16 18:41:26 717
原创 k8s 部署 CoreDNS master02 节点部署 负载均衡部署
【代码】k8s 部署 CoreDNS master02 节点部署 负载均衡部署。
2024-05-15 17:21:04 518
原创 k8s v1.20二进制部署 部署 CNI 网络组件 部署 Calico
●Pod 内容器与容器之间的通信在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命名空间,相当于它们在同一台机器上一样,可以用 localhost 地址访问彼此的端口。●同一个 Node 内 Pod 之间的通信每个 Pod 都有一个真实的全局 IP 地址,同一个 Node 内的不同 Pod 之间可以直接采用对方 Pod 的 IP 地址进行通信,Pod1 与 Pod2 都是通过 Veth 连接到同一个 docker0/cni0 网桥,网段相同,所以它们之间可以直接通信。
2024-05-14 19:17:19 1055
原创 k8s v1.20二进制部署
即etcd默认使用2379端口对外为客户端提供通讯,使用端口2380来进行服务器间内部通讯。CFSSL 使用配置文件生成证书,因此自签之前,需要生成它识别的 json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如 kube-apiserver 访问 etcd;,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如 etcd 对外提供服务;,相互之间连接时使用的证书,如 etcd 节点之间进行验证和通信。
2024-05-13 17:09:24 997 2
原创 Kubernetes 概述
1.进来经过证书认证,来到API(唯一入口,大脑),接收到请求3个副本,存储数据到etcd,调用manager调用创建模板。2.scheduler根据模板初选节点存储给etcd(分布式键值对存储,存储重要信息,并持久化)3.kubelet把节点的资源情况反馈给API,再给etcd存储,经过优选,把资源和环境最合适的节点pod推给api根据manager提供的模板,再相应节点上pod创建副本。
2024-05-09 18:37:24 754
原创 ansible-3
目录一、Templates 模块1.1.先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变量1.2.修改主机清单文件,使用主机变量定义一个变量名相同,而值不同的变量1.3.编写 playbook 二、tags 模块三、Roles 模块四、编写模块4.1.编写httpd模块4.2.编写mysql模块4.3.编写php模块4.4.编写rolesJinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可以看作是一个编译过的模板文件,用来产生目标文本,传递Pyt
2024-05-08 18:50:47 406
原创 ansible补充
playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。
2024-05-07 19:08:53 561
原创 Ansible
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。
2024-05-06 19:53:30 912
原创 Docker--harbor私有仓库部署与管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
2024-05-05 22:19:03 1451
原创 Docker-compose
compose是一个用于定义及允许多个Docker容器的工具,主要是通过一个YAML文件进行服务配置使用Docker Compose不再需要使用Shell脚本来启动容器Docker Compose非常适合组合使用多个容器进行开发的场景。
2024-05-03 18:16:40 836
原创 Docker 的数据管理 与 Docker 镜像的创建
目录一、Docker 的数据管理1.1.数据卷1.2.数据卷容器1.3.容器互联(使用centos镜像)二、Docker 镜像的创建2.1.基于现有镜像创建2.2.基于本地模板创建2.3.基于Dockerfile创建 2.3.1联合文件系统(UnionFs)2.3.2镜像加载原理2.3.3Dockerfile2.3.4Docker镜像结构的分层2.3.5Dockerfile操作常用的指令(1)FROM 镜像(2)MAINTAINER 名字(3)RUN 命令(4)ENTRYPOINT ["要运行的程序", "
2024-04-27 19:42:51 930 1
原创 docker 资源控制
docker run -cpu-period #设置调度周期时间1000~1000000-cpu-quota #设置容器进程的CPU占用时间,要与调度周期时间成比例--cpu-shares #设置多个容器之间的CPU资源占用比--cpuset-cpus #绑核(第一个CPU编号从0开始)
2024-04-27 17:25:05 433
原创 docker网络模式
直接使用bridge模式,是无法支持指定IP运行docker的#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。1、#此处需run一个容器test4,指定网络IP运行容器test4。
2024-04-25 14:51:22 842
原创 docker 基本命令
docker search 仓库名/镜像名docker pu11下载仓库名/镜像名:标签docker push 上传 仓库用户名/镜像名:标签docker images查看镜像docker tag 创建 源仓库名/源镜像名:标签新仓库名/新镜像名:标签docker rmi 删除仓库名/镜像名:标签docker save -o xxx.tar 存储 仓库名/镜像名:标签docker load -i xxx.tar 载入 仓库名/镜像名:标签。
2024-04-23 16:30:55 1264 1
原创 docker概念
容器是一种技术,开发人员打包开发完成的一个应用(系统)以及所需的开发环境,然后通过容器可以运行在不同的计算机上面,也不需要重新配置相关环境,不同的是每一台计算机都需要配置运行容器的容器引擎,目前市场上主流就是Docker容器引擎,不过Docker容器引擎的配置很简单,比配置应用(系统)运行的环境简单,方便太多。②只接受来自QEMU的请求指令。Docker是一个开源的应用容器引擎,基于go语言开发 是容器里面的运行应用的工具 ,是一个轻量级的虚拟机,可用在docker多个平台去使用的。
2024-04-22 19:40:43 986
原创 zabbix
zabbix server:zabbix 服务端守护进程,其中zabbix agent、zabbix get、zabbix sender、zabbix proxy的数据最终都提交给zabbix server;4.Zabbix web:GUI图形化界面,zabbix的web界面,管理可以通过zabbix的web界面管理zabbix配置以及查看zabbix的监控信息,可以独一部署在一台服务器上。相对于agent而言;zabbix由2部分构成,zabbix server与可选组件zabbix agent。
2024-04-15 17:18:51 681
原创 Zookeeper与kafka
Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。
2024-04-14 16:04:00 1122
原创 ELK-Kibana 部署
浏览器访问 http://192.168.190.101:5601 登录 kibana,添加 apache_access-* 和 apache_error-* 索引,查看日志信息。可能你只看到了 apache-error,那是因为 access 需要访问 httpd 页面才能生成。浏览器访问 http://192.168.190.101:9100 查看索引是否创建。索引添加完成后,点击 Discover 按钮可查看图表信息及日志信息。浏览器访问 http://192.168.190.101:5601。
2024-04-11 18:55:30 735
原创 ELK日志分析系统概述及部署
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
2024-04-10 19:39:35 2272
原创 rsync+inotify实时同步 和 GFS分布式文件系统概述
1.GlusterFS 是一个开源的分布式文件系统。2.由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。3.没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。
2024-04-08 18:43:22 1095
原创 rsync 远程同步
rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。
2024-04-07 16:54:13 757
原创 Redis的主从复制、哨兵模式、集群,概述及部署
redis主从复制 是为了数据冗余和读写分离在这两种模式中,有两种角色主节点(master)和从节点(slave),主节点负责处理写的操作,并将数据更改复制到一个或多个从节点。这样我们的主节点负载减轻,从节点可以提供数据读取服务,实现读写分离,如果主节点停止服务,从节点之一可以立即接管主节点的角色,再继续提供服务具体流程如下:1、从节点启动成功连接主节点后,发送一个sync命令。
2024-04-06 20:05:10 1239
原创 Redis简介、常用命令
Redis 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;
2024-04-03 08:27:05 973
原创 MySQL数据库优化和MySQL故障
硬件优化CPU:推荐使用S.M.P.架构的多路对称CPU内存:4GB以上的物理内存磁盘:RAID-0+1磁盘阵列或固态硬盘MySQL配置文件优化调整配置项SQL优化尽量使用索引进行查询优化分页GROUP BY优化MySQL架构优化架构选择:主从、主主、一主多从、多主多从。
2024-04-01 17:33:20 835 1
原创 MySQL主从复制与读写分离
1.首先client端(tomcat)将数据写入到master节点的数据库中,master节点会通知存储引擎提交事务,同时会将数据以(基于行、基于sql、基于混合)的方式保存在二进制日志中2.SLAVE节点会开启I/O线程,用于监听master的二进制日志的更新,一旦发生更新内容,则向master的dump线程发出同步请求3.master的dump线程在接收到SLAVE的I/O请求后,会读取二进制文件中更新的数据,并发送给SLAVE的I/O线程。
2024-03-28 19:50:53 2003
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人