自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python-08-程序跳转语句(break、continue)、空语句pass

break和continue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。选择结构分单分支结构(if)、双分支结构(if....else...)和多分支结构(if....elif..else..)print('用户名或者密码不正确,您还有',2-i,'次机会')print('用户名或者密码不正确,您还有',2-i,'次机会')print('累加和大于20的当前数是:',i)print('正在登陆,请稍后:')print('正在登陆,请稍后:')

2024-04-22 17:20:32 1199

原创 Python-07-循环遍历、嵌套循环

print('用户名或者密码不正确,您还有',2-i,'次机会')print('用户名或者密码不正确,您还有',2-i,'次机会')print('账号输入错误,您还有',2-i,'次机会')continue #符合了就不执行后面的部分,不符合执行后面的。hangshu=eval(input('请输入棱形的行数:'))hangshu=eval(input('请输入棱形的行数:'))hangshu=eval(input('请输入棱形的行数:'))hangshu=eval(input('请输入棱形的行数:'))

2024-04-22 16:42:29 744

原创 Python-06-选择结构、循环

if 表达式1: #语句块1elif 表达式2: #语句块2elif 表达式n: #语句块nscore=eval(input('请输入您的成绩:'))多分支结构if score100: print('成绩有误') elif 0

2024-04-07 17:02:38 541 1

原创 Python-05-程序的组织结构:顺序结构、选择/分支结构

print('-----使用if语句时,如果语句块中只有一句代码,可以将语句块直接写在冒号后-----')print('-----以上if判断的表达式是通过比较运算符计算出来的,结果是布尔值类型-----')print('-----表达式也可以是一个单纯的布尔型变量-----')print('-----以上代码可以使用条件表达式进行简化-----')print('-----输入/输出语句也是典型的顺序结构-----')print('-----判断一个字符串是否为空字符串-----')

2024-02-21 16:58:21 774

原创 Python-04-运算符

运算符 描述说明 用法 结合方向。a=b=c=100 #相当于执行a=100 b=100 c=100。== 等于 98==90 False。赋值运算符: =、+=、-=、*=、/=、//=、%=、**== 不等于 98!>= 大于或等于 98>=98 True。<= 小于或等于 98<=98 True。a,b=10,20 #相当于执行了a=10 b=20。

2024-01-19 17:16:40 930

原创 Python-03-数据类型、eval函数、算数运算

数值类型:整数类型、浮点类型、复数类型。

2024-01-04 16:27:59 1143

原创 Python-02-缩进、保留字标识符、变量与常量

类定义、函数定义、流程控制语句以及异常处理语句等行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。print('luck_number的数据类型是:',type(luck_number))print('luck_number的数据类型是:',type(luck_number))print(my_name,'的幸运数字是:',luck_number)print(id(no)) #id()查看对象的内存地址的。my_name = '张三' # 字符串类型的变量。

2024-01-03 16:07:45 440

原创 Python-01-print、input、#

print('北京欢迎你',file=fp)#将北京欢迎你输入(写入)到note.txt文件中。print('您的幸运数字是:'+num)#num是字符串类型。print(a,b,"要么出众,要么出局")的输出结果100和50之间有一个空格。print('北京欢迎你'+'2023')#要加引号,得是字符串和字符串连接。num=int(num)#使用int函数将num转成整数类型。多行注释 '''开始 '''结束,中间的多行可以被注释。print('欢迎你')#此时输出结果为北京-->欢迎你。

2023-12-29 16:31:02 523

原创 K8s - Helm、HPA、rancher

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。Helm 本质就是让 K8s 的应用管理(Deployment、Service 等)可配置,可以通过类似于传递环境变量的方式能动态生成。

2023-12-29 16:07:53 1409

原创 K8s-安全机制

/默认情况下,每个 namespace 都会有一个 Service Account,如果 Pod 在创建时没有指定 Service Account,就会使用 Pod 所属的 namespace 的 Service Account。比如 kubectl 如果想向 API Server 请求资源,需要过三关,第一关是认证(Authentication),第二关是鉴权(Authorization), 第三关是准入控制(Admission Control),只有通过这三关才可能会被 K8S 创建资源。

2023-12-29 14:27:22 1467

原创 Traefik Ingress Controller

Traefik 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理、负载均衡工具。traefik 本身设计的就能够实时跟 kubernetes api 交互,感知后端 service,pod 等的变化,自动更新配置并重载。traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。

2023-12-29 14:25:09 934

原创 k8s 对外服务之 Ingress

service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。

2023-12-29 14:20:24 1358 2

原创 配置资源管理

Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。

2023-11-09 14:30:01 181

原创 PV-PVC存储卷-02

/这里定义5个PV,并且定义挂载的路径以及访问模式,还有PV划分的大小。

2023-11-09 13:57:08 105

原创 PV-PVC存储卷-01

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

2023-11-07 18:41:36 91

原创 集群调度-02

但我们可以在 Pod 上设置容忍(Tolerations),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。//由于指定 Pod 所在的 node01 节点上具有带有键 kgc 和标签值 a 的标签,node02 也有这个kgc=a的标签,所以 node01 和 node02 是在一个拓扑域中,反亲和要求新 Pod 与指定 Pod 不在同一拓扑域,所以新 Pod 没有可用的 node 节点,即为 Pending 状态。#如果 kgc 对应的值不一样就是不同的拓扑域。

2023-11-07 10:12:36 6796

原创 集群调度-01

比如 node01 的 CPU 和 Memory 使用率 20:60,node02 的 CPU 和 Memory 使用率 50:50,虽然 node01 的总使用率比 node02 低,但 node02 的 CPU 和 Memory 使用率更接近,从而调度时会优选 node02。(12)kubelet 是在 Node 上面运行的进程,它也通过 List-Watch 的方式监听(Watch,通过https的6443端口)APIServer 发送的 Pod 更新的事件。除了知道 Pod 的副本数量,副本内容。

2023-11-03 09:44:28 6399

原创 Pod 进阶

PS:在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以 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 会被打上未就绪的标签。

2023-11-03 09:17:02 135

原创 Pod详解

运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享Network、UTS及IPC命令空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。Pod资源中针对各容器提供网络命令空间等共享机制的是底层基础容器pause,基础容器(也可称为父容器)pause就是为了管理Pod容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。

2023-11-02 13:46:51 61

原创 Yaml文件详解

status: #当spce.type=LoadBalancer时,设置外部负载均衡器的地址。type: string #service的类型,指定service的访问方式,默认为。ip: string #外部负载均衡器的Ip地址值。hostname: string #外部负载均衡器的主机名。

2023-11-02 11:23:44 747

原创 Kubectl详解(陈述式、声明式)

/为deployment的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort。●externalName:将service名称映射到一个DNS域名上,相当于DNS服务的CNAME记录,用于让Pod去访问集群外部的资源,它本身没有绑定任何的资源。也可以是资源类型,如pod;//处于动态监听 pod 状态,由于使用的是滚动更新方式,所以会先生成一个新的pod,然后删除一个旧的pod,往后依次类推。

2023-11-02 11:22:52 112

原创 Kubeadm高可用

高可用多 master 节点部署master01(2C/4G,cpu核心数要求大于2) 192.168.80.20master02(2C/4G,cpu核心数要求大于2) 192.168.80.14master03(2C/4G,cpu核心数要求大于2) 192.168.80.15。

2023-11-01 16:09:29 141

原创 K8s证书可用年限修改

登陆 https://studygolang.com/dl ,下载 Linux 版本的 Go 安装包,如:go1.16.5.linux-amd64.tar.gz。#复制公钥文件内容到github中,用于ssh克隆 https://github.com/settings/keys。//上传 go1.12.9.linux-amd64.tar.gz 到 master 节点的 /opt 目录中。//查看 apiserver 证书信息,默认可用年限只有一年。//将新生成的证书复制到其他 mater 节点上进行更新。

2023-11-01 14:57:37 609

原创 Kubeadm

master(2C/4G,cpu核心数要求大于2) 192.168.10.19 docker、kubeadm、kubelet、kubectl、flannelHarbor节点(hub.kgc.com) 192.168.10.13 docker、docker-compose、harbor-offline-v1.2.2。

2023-10-31 15:30:30 755

原创 二进制搭建 Kubernetes(K8s)

目前比较常用的CNI网络组件是flannel和calico,flannel的功能比较简单,不具备复杂的网络策略配置能力,calico是比较出色的网络管理插件,但具备复杂网络配置能力的同时,往往意味着本身的配置比较复杂,所以相对而言,比较小而简单的集群使用flannel,考虑到日后扩容,未来网络可能需要加入更多设备,配置更多网络策略,则使用calico更好。将 Pod 的 IP 和所在的 Node 的 IP 关联起来,通过这个关联让不同 Node 上 Pod 之间直接通过内网 IP 地址通信。

2023-10-31 15:25:07 354

原创 Kubernetes (K8S)概述

在 Kubernetes 集群中,在每个 Node(又称 Worker Node)上都会启动一个 kubelet 服务进程。该进程用于处理 Master 下发到本节点的任务,管理 Pod 及 Pod 中的容器。每个 kubelet 进程都会在 API Server 上注册节点自身的信息,定期向 Master 汇报节点资源的使用情况,并通过 cAdvisor 监控容器和节点资源。

2023-10-24 08:58:02 361

原创 Ansible 的脚本 --- playbook 剧本

vars: #定义变量- groupname: mysql #格式为 key: valuetasks:group: name={{groupname}} system=yes gid=306 #使用 {{key}} 引用变量的值copy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txt #在setup模块中可以获取facts变量信息。

2023-10-20 11:04:33 371

原创 Ansible

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。

2023-10-20 11:00:27 214

原创 Docker--harbor私有仓库部署与管理

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

2023-10-16 09:01:31 484

原创 Docker-compose和Consul

我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose。docker swarm(管理跨节点)Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。

2023-10-16 08:56:23 761

原创 Dockerfile镜像实战

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config #不使用PAM认证。RUN sed -ri '/^session\s+required\s+pam_loginuid.so/ s/^/#/' /etc/pam.d/sshd #取消pam限制。CMD ["/usr/sbin/sshd" , "-D"] #/usr/sbin/sshd -D 用于前台启动sshd服务。

2023-10-10 09:08:24 407

原创 Docker 的数据管理

但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。Dockerfile是由多条的指令组成的文件,其中每条指令对应 Linux 中的一条命令,Docker 程序将读取Dockerfile 中的指令生成指定镜像。在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。

2023-10-10 08:59:58 156

原创 Docker01基础操作

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

2023-10-05 11:28:38 293

原创 Docker02基本管理

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

2023-10-05 09:05:44 350

原创 Zabbix

案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息1.明确需要执行的 linux 命令2.创建 zabbix 的监控项配置文件,用于自定义 key#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中#自定义监控项的格式如下3.在服务端验证新建的监控项1.创建模板点击左边菜单栏【配置】中的【模板】,点击【创建模板】【模板名称】设置成 Template Login User。

2023-09-25 08:48:51 61

原创 Zookeeper集群 + Kafka集群

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。

2023-09-21 11:38:23 217

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

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

2023-09-19 14:16:42 241

原创 GFS 分布式文件系统

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

2023-09-14 15:05:42 115

原创 Redis群集

redis群集有三种模式,分别是主从同步/复制、哨兵模式、Cluster,下面会讲解一下三种模式的工作方式,以及如何搭建cluster群集●主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。●哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡;存储能力受到单机的限制;

2023-09-14 14:53:41 206

原创 NoSQL之 Redis配置与优化

Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;

2023-09-12 14:45:49 297

lnmp lamp 重定向 负载均衡 反向代理 tomcat 动静分离 文档

nginx-tomcat 20230813-20230815 详细文档

2023-08-15

网络:vlan access、trunk、单臂路由题目命令

网络:vlan access、trunk、单臂路由题目命令

2023-06-01

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

TA关注的人

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