自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s-20 hpa控制器

官网:https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/hpa可通过metrics-server所提供pod的cpu 或者内存的负载情况,从而动态拉伸控制器的副本数,从而达到后端的自动弹缩。结束压测后,默认等待5分钟冷却时间,pod会被自动回收。触发hpa扩容pod。

2023-10-17 17:10:57 540

原创 k8s-19 资源限制与监控

创建的ResourceQuota对象将在default名字空间中添力头下限制:每个容器必须设置内存请求(memory request),内存限额(memorylimit) ,cpu请求 (cpu request) 和cpu限额 (cpu limit)所有容器的内存请求总额不得超过1 GiB。所有容器的CPU请求总额不得超过1CPU所有容器的CPU限额总额不得超过2 CPU。通过node或pod的亲和性设置,让dashboard-metrics-scraper和metrics-server的Pod处于同-

2023-10-17 16:58:50 590

原创 k8s-18 认证授权

服务账户创建的目的是为了更轻量,允许集群用户为了具体的任务创建服务账户(即权限最小化原则 )。Subject: 被作用者,它表示k8s中的三类主体,user, group,serviceAccountRole:角色,它其实是一组规则,定义了一组对 Kubernetes API 对象的操作权限RoleBinding:定义了被作用者”和“角色的绑定关系。Admission Control (准入控制)用于拦截请求的一种方式,运行在认证、授权之后,是权限认证链上的最后一环,对请求API资源对象进行修改和校验。

2023-10-17 16:44:19 872

原创 k8s-17 k8s调度

你可以发现规则是“软”/“偏好”,而不是硬性要求,因此,如果调度器无法满足该要求,仍然调度该 pod你可以使用节点上的 pod 的标签来约束,而不是使用节点本身的标签,来允许哪些 pod 可以或者不可以被放置在一起。kube-scheduler 是 Kubernetes 集群的默认调度器,并且是集群控制面的一部分如果你真的希望或者有这方面的需求,kube-scheduler 在设计上是允许你自己写个调度组件并替换原有的 kube-scheduler。pod 亲和性讲的是 pod 与pod之间的关系。

2023-10-16 10:28:09 287

原创 k8s-16 statefulse控制器

官网:https://v1-25.docs.kubernetes.io/zh-cn/docs/tasks/run-application/run-replicated-stateful-application/Pod被删除后重建,重建Pod的网络标识也不会改变,Pod的拓扑状态按照Pod的“名字+编号”的方式固定下来,并且为每个Pod提供了一个固定且唯一的访问入口,即Pod对应的DNS记录。新创建的Pod必须和原来Pod的网络标识一样存储状态:应用的多个实例分别绑定了不同存储数据。当把副本数改为2 时。

2023-10-16 10:08:30 606

原创 k8s-15 strogeclass

Reclaim Policy (回收策略): 通过reclaimPolicy字段指定创建的Persistent Volume的回收策略,回收策略包括: Delete 或者 Retain,没有指定默认为Delete。更多属性查看: https://kubernetes.io/zh/docs/concepts/storage/storage-classes/StorageClass提供了一种描述存储类 (class)的方法,不同的cass可能会映射到不同的服务质量等级和备份策略或其他策略等。

2023-10-16 10:00:45 162

原创 k8s-14 存储之volumes

对于支持删除操作的PV卷,删除操作会从Kubernetes中移除PV对象,还有对应的外部存储 (如AWS EBS,GCE PD,Azure Disk,或者Cinder volume)。当使用这种类型的卷时要小心,因为:具有相同配置(例如从 podTemplate 创建)的多个 Pod 会由于节点上文件的不同而在不同节点上有不同的行为。hostPath 卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中,虽然这不是大多数 Pod需要的,但是它为一些应用程序提供了强大的逃生舱。

2023-10-15 23:40:04 361

原创 k8s-13 存储之secret

Service Account: Kubernetes 自动创建包含访问API 凭据的 secret,并自动修改pod 以使用此类型的 secret。Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里。敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活。推荐把registrykey绑定到sa,这样yaml文件中就可以不用指定,更加安全。如何使用secrets 将Secret挂载到Volume中。

2023-10-15 23:32:34 277

原创 k8s-12 存储之configmap

Configmap用于保存配置数据,以键值对形式存储configMap 资源提供了向 Pod 注入配置数据的方法旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。创建ConfigMap的方式有4种:使用字面值创建。使用目录创建编写configmap的yam文件创建。开启之后 先看集群是否正常。设置容器内的命令行参数。通过yaml文件创建。

2023-10-15 23:28:40 280 1

原创 k8s-11 网络策略

控制的对象是具有app=myapp-v1标签的pod。给test命令空间中的pod添加指定标签后才能访问。给测试pod添加指定标签后,可以访问。同时限制namespace和pod。给namespace添加指定标签。限制namespace流量。此时访问svc是不通的。

2023-10-15 23:25:55 199

原创 k8s-10 cni 网络

Flanneld: flannel在每个主机中运行flanneld作为agent,它会为所在主机从集群的网络地址空间中,获取一个小的网段subnet,本主机内所有容器的IP地址都将从中分配。如果一个容器要访问另一个容器:很明显要跨主机,数据包通过flannel(其实就是隧道) 知道另一边的mac地址,就可以拿到另一边的ip地址,然后构建常规的以太网数据包,然后承载内部数据帧出去,另一边在封装常规的以太网头部的时候,需要对端的ip 和mac。虚拟网桥,虚拟网卡,多个容器共用一个虚拟网卡进行通信。

2023-10-15 23:21:31 427

原创 k8s-9 ingress-nginx 特性

场景:版本的升级迭代,比如一个service 升级到另外一个,升级的过程中 之前利用控制器 滚动更新25%,滚动更新得频率可以自己取设置。以微服务各个业务域含义作为API路径前缀 ingress provider负责去掉业务域前缀 易于管理维护、认证鉴权、观测统。创建灰度ingress,配置灰度头部key以及value灰度流量验证完毕后,切换正式ingress到新版本。但是在升级的过程中,控制器一点点的通过控制器进行pod 级别的升级,在升级的过程中如何快速做回滚。后面必须跟westos 这个关键字。

2023-10-06 21:31:33 1064

原创 k8s-8 ingress-nginx

Ingress Controller 会根据你定义的 ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。当前的类型是loadbalancer 有一个外部地址 ,只需要把域名解析到外部地址上就可以访问。

2023-10-06 21:21:49 550

原创 k8s集群-7 service

ClusterlP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort: 将Service通过指定的Node上的端口暴露给外部,访问任意一个NodelP:nodePort都将路由到ClusterIP.LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均衡器,并将请求转发到 <NodelP>:NodePort,此模式只能在云服务器上使用。IPVS模式的service,可以使K8s集群支持更多量级的Pod.

2023-10-05 11:34:54 396

原创 k8s集群-6(daemonset job cronjob控制器)

在每个节点上运行集群存储 DaemonSet,在每个节点上运行日志收集 DaemonSet,例如 fluentd、logstash。当有节点DaemonSet 确保全部 (或者某些) 节点上运行一个 Pod 的副本。一个 CronJob 对象就像 crontab (cron table)文件中的一行,它用 Cron 格式进行编写,并周期性地在给定的调度时间执行 Job。一个简单的用法是在所有的节点上都启动一个 DaemonSet,将被作为每种类型的 daemon 使用。这个是一次性的,周期化的。

2023-10-05 11:06:36 1033

原创 k8s 集群5-控制器

首先由deployment来创建rs 再由rs 创建副本数,当我们要升级的时候,deploymen会新建一个rs ,原来的rs 不用了 ,rs会把之前的pod (副本) 回收,然后再由新的rs 再把pod (副本)重建出来。定义的副本数 已经写到了etcd 里,整个信息已经持久化到了etcd 里面,这个控制器会不断地到etcd里获取变更,不断地和当前的状态和etcd里的状态做比对,如果不对,代码自驱动完成。通过控制器标签来选择pod,控制器创建的每个pod 都有相应的标签,通过标签来捆绑pod。

2023-09-24 18:00:09 61

原创 k8s 集群 -4 pod生命周期

由于Init 容器必须在应用容器启动之前运行完成,因此 init 容器提供了一种机制来阻塞或延迟应用容器的启动,直到满足了一组先决条件。一旦前置条件满足,Pod内的所有的应用容器会并行启动。初始化容器的效果就是 在打开myapp容器之前,首先通过init容器检测集群内的解析到位没,如果没到位 后续的容器不会起来 直到环境就绪 容器在开启 svc解析成功后,init容器退出,主容器运行。Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 init 容器。

2023-09-23 21:19:06 87

原创 k8s集群-3 pod 管理

pod是可以创建和管理k 8 s 计算的最小可部署单元,一个pod 代表着集群中运行的一个进程,每个pod 都有一个唯一的ip。一个pod 类似一个豌豆荚,包含一个或者多个容器,多个容器间共享IPC Network和UTC namespace。再同一个pod 内 有两个容器 这两个容器共享网络栈,是可以通过localhosta 来访问。有多少个副本 services 自动发现 把启动的健康的pod 就加到了负载均衡列表。集群通过namespace来做资源隔离,默认操作的资源都指向default。

2023-09-23 21:09:06 119

原创 k8s-2 集群升级

k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker。腾空节点 需要在 master 节点执行。修改节点套接字 需要在 master 上执行。配置kubelet使用cri-docker。配置kubelet使用cri-docker。解除节点保护 需在 master 节点执行。在所有集群节点 部署cri-docker。上传镜像到 harbor仓库。在master上解除节点保护。升级master 节点。在master 上腾空节点。

2023-09-22 18:10:47 536

原创 k8s-部署

API Server 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;Kubelet 负责维护容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;Controller Manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;Scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;所有节点禁用swap,注意注释掉/etc/fstab文件中的定义。新建一个名字为k8s的仓库 里面专门存放k8s镜像。

2023-09-22 17:45:46 513

原创 docker容器技术实战-4

测试时只保留一个cpu核心可用,只有争抢cpu资源时优先级才会生效。怎么样把进程和x1控制器相关联呢。ctrl +pq 防止退出回收。多出的100m会写入swap。12 docker 安全加固。容器会直接调用cgroup。默认容器内的用户是受限的。11 docker安全。

2023-09-15 17:41:33 107

原创 docker容器技术实战-3

所有容器都要桥接到docker0 那么数据包都一定会在docker0 上走,所有容器的数据包都要回到网关 就要从docker0 走 docker0 想要出去的时候 要从eth0 这个接口上走 所以内核的IP服务一定要打开。内嵌dns解析 不同网络之间是被隔离的,默认不能通信 不同网络之间 的通信需要附加虚拟网卡。host网络模式 让容器跟宿主机共享一个网络栈,容器根本没有创建新的虚拟网卡,直接跟宿主机公用。所以多容器之间的互访是通过dns 来访问的 自定义网络 内嵌了dns。

2023-09-14 09:32:32 144

原创 docker容器技术实战-2

在 server1 server2 上都加解析。在 server1 上 把整个目录拷贝过去。创建自己的仓库 webserver。以上只是最基本的加密与认证。05 docker私有仓库。登录仓库 不然无法上传下载。激活内核选项文件传输过去。把私钥和证书加到仓库里去。在server2 上拉取。实际生产环境中要求更高。在server2 上。

2023-09-12 20:27:43 206

原创 Docker容器技术实战-1

如果要下载一个镜像,镜像里有很多层,这个层已经有了,就不需要下载,这样,节省了网络带宽。cs 架构 客户端通过docker这个客户端命令 发送指令,由docker引擎进行响应,去本地查询下有没有这个镜像,如果有镜像,直接创建容器。镜像层是只读的,修改的东西只保存在容器层,当保存的时候,容器层就会保存成新的镜像层,一个镜像最多127 层,镜像在上传仓库的时候,如果仓库端也有相同的镜像层的时候,只需上传他没有的层就可以了。容器 没有虚拟化层,直接共享操作系统内核,不同的容器共享是同一个宿主机内核。

2023-09-09 20:47:13 418 1

原创 tcp与udp

假设客户端主动发起连接关闭请求,它需要向服务端发起一个FIN包,表示要关闭连接,自己进入终止等待1状态,这是第一次挥手,服务端收到FIN包,发送一个ACK包,表示自己进入了关闭等待状态,客户端进入终止等待2 状态,这是第二次挥手,服务端此时还可以发送未发送的数据,而客户端还可以接受数据,待服务端发送完数据之后,发送一包FIN包,进入最后确认状态,这是第三次挥手,客户端收到之后恢复AKC包,进入超时等待状态,进入超时等待后关闭连接,而服务端收到ACK包后,立即关闭连接,这是第四次挥手。2.为什么是四次挥手。

2023-09-04 14:42:02 632

原创 zabbix监控实战

更改的密码为HLThlt123。配置zabbix server。创建zabbix数据库。配置zabbix前端。

2023-09-04 14:15:17 253

原创 Lnmp架构-Redis

make的时候需要gcc和make 如果在纯净的环境下需要执行此命令。设置 11 是master 12 13 是slave。slave 角色只能读 没有修改的权限。此时在 11 master 上。2.Redis主从复制。在slave会实现同步。

2023-08-30 17:46:22 449

原创 lnmp架构-mysql2

log_slave_update=ON 意思就是 当slave的sql线程做完之后读取relay_log 中继回放之后 slave端自己也写份二进制日志。一主多从的请求 通常是读的请求高于写 但是写的请求很高 每个节点都可以进行读写 这是分布式必须通过(多组模式)集群的方式进行横向扩容。主从复制的时候 slave只会复制master的binlog日志 就是二进制日志 不会复制relay_log。此时 server1 server2 server3 数据都同步。根据实际情况修改主机名和网段。

2023-08-28 19:34:03 367

原创 lnmp架构-mysql1

所有这种默认不在系统环境中的路径里 就这样加。此时master 还没进行任何增删改查动作。当master 端有数据的时候 怎么同步呢。这样就可以直接调用 不用输入路径调用。当master 端中还没有插入数据时。在server1 master 上。在server2 上配slave。在server2 上会实现同步。1.MySQL数据库编译。make完之后是这样的。3.mysql主从复制。在server2 上。在server3 上。在server3 上。在 server2上。在server1 上。

2023-08-27 21:25:39 1092

原创 lnmp架构-tomcat session

关闭server2上的memcached服务后,会自动切换到server3上的memcached服务。解决 当一个tomcat服务器挂掉后 另一个服务器上有第一个服务器上提交的数据问题。tomcat服务通过msm模块把session信息交叉存储到memcached上。在server2 和server3两个服务器上都装上memcached。关闭server3上的tomcat服务后会自动切换到server2。在server2 和 server3上进行同样的操作。保存的信息都会在tomcat日志中保存。

2023-08-26 13:51:03 735

原创 lnmp架构-PHP

mamcache 就是内存 直接从内存中命中 所以性能非常好。客户端向nginx请求页面 Nginx本身可以从内存中直接拿取。缓存逻辑最好是 把缓存直接交给nginx 就会提升效率。phpinfo函数 就是 显示php信息。不需要向后端的php请求 这和速度会更快。关键看后端的 php 什么时候处理完。11 PHP和nginx构建高速缓存。mamcache主要是加给了php。09 php初始化配置。nginx 的并发能力强。10 php的功能模块。php的动态模块方式。08 PHP源码编译。

2023-08-25 16:58:45 878

原创 lnmp架构-nginx

www.westos.org/bbs 重定向bbs.westos.org。这些参数 都可以灵活运用 放在任何一个loacation里 实现过滤。Nginx缓存配置 :缓存可以降低网站带宽,加速用户访问。禁用不必要的日志记录 以节省磁盘IO的消耗。当访问http时 直接到 https。重定向(80重定向到443)nginx重定向与防盗链。6.nginx基础配置。自动索引: 下载方便。监控的信息没有必要记录。

2023-08-25 16:44:27 625

原创 lnmp架构-nginx

nigix可以做负载均衡器 也可以做常规的web服务器 作为网站的发布服务器。make 由 makefike指导进行编译 把c语言 编译成二进制程序。apache也是可以的 但是 apache一般吞吐性能没有nigix 强。make install 把指定好的程序安装到指定的目录里。百度搜索 搜索 systemd service file。前面高可用负载均衡做流量均摊只是用到 iso 前四层。此时 没有启动脚本 那么怎样安装启动脚本。官网下载好之后 直接拖到软件中。源码安装 在于高度定制灵活。

2023-08-20 17:17:08 197

原创 LVS集群

一直是 server2 原因是测试机访问192.168.56.100的时候, 没有访问调度器 访问到了真实服务器 192.168.25.12。192.168.25.12 192.168.25.13 是真实的服务器。要让访问到调度器,所以得把真实服务器的VIP响应关掉。新建一个虚拟机后 安装好系统环境:RHEL7.6。做好这些之后 快照 以后用的时候 只需克隆即可。在同一个网段内 使用相同的ip 肯定会冲突。关闭 NetworkManager。192.168.25.11 调度器。3 LVS负载均衡集群。

2023-08-18 13:51:52 65

原创 ansible中的角色

以特定的层级目录结构进行组织tasks,variables,handlers,templates,files等,相当于把函数的调用把各个功能切割成片段来执行。roles就是通过分别变量,文件,任务,模块及处理器放置于单独的目录中,并可以便携地include它们。roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用频率很高。Ansible roles 是为了层次化 结构化 的组织playbook。安装本地 或者网上的 知道压缩包 来建立roles。2 关于roles 执行及技巧。

2023-08-15 21:16:00 91

原创 Ansible中执行流控制

挂载 镜像到 /mnt/isodir 如果要挂载的文件不存在 就建立文件 如果存在 就自动挂载。rescue: 定义当block句子中出现失败后运行的任务。没开触发器 配置文件没有改变 还会重启服务 这样不合理。always: 定义最终独立运行的任务·8 根据play运行情况选择运行动作。1 ansible 中的迭代循环。3 ansible中的条件语句。4 ansible中的触发器。block: 定义要运行的任务。任务失败后 不停止任务运行。9 运行情况判定项目实例。用变量的方式 也可以。

2023-08-15 21:08:24 52

原创 ansible 中的变量及加密

jianja2是python下一个被广泛应用的模板引擎 它的设计思想来源于Diango的模板引擎 其扩展了其语法和一系列强大的功能 其中最显著的是一个增加了沙箱执行功能和可选的自动转义功能。全局变量: 从命令行配置文件中设定 paly: 在play和相关结构中设定 主机:由清单 事实收集或注册任务。因为变量信息为系统信息所以不能随意设定仅为采集信息,故被称为事实变量。事实变量是ansible 在受控主机中自动检测出的变量。4 ansible 中的事实变量的使用方法。事实变量还有与主机相关的信息。

2023-08-13 17:44:27 63

原创 ansible中剧本的应用

key/value可以多行书写 也可以一行书写 用逗号 隔开 value 可以是字符串 也可是list 一个play需要包括 name和tasks name是描述 tasks 是动作 一个name只能包含一个tasks 扩展名称 yml 或者ya。YAML 是一种表达资料序列的格式 类似XML 2001 年首次发表 www.yaml.org。1.什么是playbook 及playbook的组成。playbook是又一个或多个play组成的列表。列表前面加- 字典前面不加-缩进严格 大小写敏感。

2023-08-13 17:23:37 63

原创 常用模块介绍

mode 设定权限 owner 设定文件用户 group 设定文件组 src 源文件 dest 目标文件 recurse=yes 递归更改。--list 显示主机列表 也可以用--list-hosts。常用参数 : --version 现实版本 -m moudle 指定模块 默认为command模块。-become-user=USERNAME指定sudo的用户身份。-v 详细过程 -vv -vvv 更详细过程。mode 指定目的地文件权限 backup=yes 当受控主机中存在文件时备份源文件。

2023-08-10 19:19:12 54

原创 部署ansible

ansible执行的时候的原理 :在主控机里 生成一个python脚本 生成完之后 用sshd服务把脚本传递给受控主机里 在受控主机里 执行这个脚本。这些参数 可以在配置文件里直接写入 省略掉这些参数。2ansible 对于企业的重大意义及安装方法。然后 把当前主机的key 复制到远程主机里。3 ansible 中清单的书写及指定。在用户的子目录配置文件中可以编写清单。ansible命令指定清单的正则表达式。4 ansible 的配置文件。也可以在任何位置编写清单。用户的子目录配置文件。

2023-08-10 16:37:34 51

空空如也

空空如也

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

TA关注的人

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