自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes 集群部署 Prometheus 和 Grafana

登录到 浏览器访问 http://192.168.80.11:30066/#/alerts ,登陆 alertmanager 即可看到。#通过上面可以看到 service 在 node 节点上映射的端口是 31000,这样我们访问 k8s 集群的 node 节点的 ip:31000,就可以访问到 prometheus 的 web ui 界面了。浏览器访问 http://192.168.80.11:31000 ,点击页面的 Status->Targets,查看 prometheus 的 targets。

2024-08-20 16:43:27 1313

原创 k8s集群调度

k8s是通过list-watch机制实现每个组件的协同工作controller-manager、scheduler、kubelet通过list-watch机制监听apiserver发出的事件,apiserver也会监听etcd发出的事件预选策略(predicate):通过调度算法过滤掉不满足条件的node节点,如果没有满足条件的node节点,Pod会处于Pending状态,直到有符合条件的node节点出现;PodFitsResources(根据pod的request资源量)

2024-08-15 11:53:20 943

原创 k8s集群中pod的容器资源限制和三种探针

类似的,如果给容器设置了 CPU 的 limit 值但未设置 CPU 的 request 值,则 Kubernetes 自动为其设置 CPU 的 request 值 并使之与 CPU 的 limit 值匹配。当为 Pod 中的容器指定了 request 资源时,代表容器运行所需的最小资源量,调度器就使用该信息来决定将 Pod 调度到哪个节点上。可以以整数表示,或者以10为底数的指数的单位(E、P、T、G、M、K)来表示, 或者以2为底数的指数的单位(Ei、Pi、Ti、Gi、Mi、Ki)来表示。

2024-08-15 09:27:04 834

原创 k8s 对外服务之 Ingress

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

2024-08-15 09:20:40 1014

原创 k8s集群的pod理论详解

每个Pod都有一个特殊的被称为“基础容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或者多个紧密相关的用户应用容器。Kubernetes中的pause容器为每个容器提供以下功能:在pod中担任linux命名空间(如网络命名空间)共享的基础启用PID命名空间,开启init进程。

2024-08-13 09:22:30 741

原创 k8s中yaml文件的编写

方法1:根据现有资源导出yaml文件修改配置,重新创建只保留常用配置,删除多余的,配置,进行修改创建即可方法2:根据现有资源,进入其配置中,复制模板,再进行创建即可复制其中的配置,获取模板方法3:通过--dry-run选项模拟运行创建资源的命令获取kubectl create|run|expose -n <命名空间> <资源类型> <资源名称> [参数选项] --dry-run=client -o yaml > XXX.yaml。

2024-08-08 17:00:59 1616 1

原创 k8s集群的资源发布方式(滚动/蓝绿/灰度发布)及声明式管理

比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。也可以通过kubectl delete -f svc.yaml该命令直接删除,因为svc.yaml配置文件中已经定义了该资源的各种参数,直接指定这个文件删除即可。#但是此种方法并不是所有字段都能进行修改,若遇到 不能修改的字段,则直接选择离线模式进行修改。通过切换负载均衡的流量来实现业务的切换。

2024-08-07 11:06:07 430

原创 k8s集群中kubectl的陈述式资源管理

LoadBalancer和NodePort很相似,目的都是向外部暴露一个端口,区别在于LoadBalancer会在集群的外部再来做一个负载均衡设备,而这个设备需要外部云环境支持的,外部服务发送到这个设备上的请求,会被设备负载均衡转发到K8S集群中。例如Pod和Pod之间的通信,如果是Kubernetes集群外的请求访问是不行的。删除(重启)pod资源,由于存在deployment/rc之类的副本控制器,删除pod也会重新拉起,若pod无法删除,总是处于terminate状态,则要强行删除pod。

2024-08-05 15:04:51 873

原创 kubectl exec 遇到 unable to upgrade connection Forbidden 的解决办法

在执行 kubectl exec、run、logs 等命令时,apiserver 会将请求转发到 kubelet 的 https 端口,并且我使用的 Kubernetes 集群启用了 RBAC。这个权限放太松了,很危险。为 system:anonymous 临时绑定一个 cluster-admin 的权限。授予 kube-apiserver 访问 kubelet API 的权限。

2024-08-05 13:53:48 497

原创 kubeadm部署k8s集群

将三个master节点中两个文件中的 #- --port=0注释重启即可。如何解决kubeadm部署k8s集群中状态显示Unhealthy?kubeadm安装k8s的重启方法。方法一:通过脚本升级证书有效期。

2024-08-02 16:57:37 496

原创 二进制搭建 Kubernetes v1.20(下)

使用 CoreDNS 可以为集群中的 service 资源创建一个资源名称 与 ClusterIP 的对应关系解析,从而避免将 service 的 ClusterIP 地址硬编码到应用程序代码中。//修改两个node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP。20.0.0.112、20.0.0.113两台服务器做负载均衡。192.168.9.115服务器查看vip。两台keepalived服务器开启服务。20.0.0.113服务器。

2024-08-01 14:10:29 398

原创 Kubernetes Pod长时间处于Terminating的处理方式

Kubernetes是一个容器编排和管理平台,它可以帮助我们自动部署、扩展和管理容器化应用程序。在Kubernetes中,Pod是最小的可部署单元,每个Pod都有自己的IP地址和网络端口,并且可以包含一个或多个容器。当我们要删除一个Pod时,Kubernetes会发送删除命令,并开始删除操作。但是,Pod并不会立即被销毁。它先被放置在Terminating状态下,以便它可以完成正在进行的操作。但有时Pod会长时间停留在Terminating状态下,这可能会影响应用程序的正常运行。

2024-08-01 13:35:43 1406

原创 二进制搭建 Kubernetes v1.20(中)

K8S 中 Pod 网络通信:●Pod 内容器与容器之间的通信在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命名空间,相当于它们在同一台机器上一样,可以用 localhost 地址访问彼此的端口。●同一个 Node内Pod 之间的通信。

2024-07-30 16:53:16 936

原创 Kubernetes 概述

服务器经历了三次演变过程:物理机、虚拟机和容器化物理机的缺点部署慢 :每台服务器都要安装操作系统、相关的应用程序所需要的环境,各种配置;成本高:物理服务器的价格十分昂贵;资源浪费:硬件资源不能充分利用;扩展和迁移成本高:扩展和迁移需要重新配置一模一样的环境。易部署:每台物理机可部署多台虚拟机,且可以通过模板,部署快,成本低;资源池:开出来的虚拟机可作为资源池备用,充分压榨服务器性能;资源隔离:每个虚拟机都有独立分配的内存磁盘等硬件资源,虚拟机之间不会互相影响;

2024-07-30 13:57:55 965

原创 二进制搭建 Kubernetes v1.20(上)

k8s集群master01k8s集群master02k8s集群node01k8s集群node02etcd集群节点1etcd集群节点2etcd集群节点3负载均衡nginx+keepalive01(master)负载均衡nginx+keepalive02(backup)

2024-07-29 19:40:49 1201

原创 Docker&K8S面试题和答案

Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个可扩展的、高可用的集群,并包含了自动化部署、负载平衡、存储管理、自我修复、自动扩容等功能。

2024-07-25 17:11:38 859

原创 Docker 安全及日志管理(包含SSL证书)

目前常用的 Docker 版本都支持 Docker Daemon 管理宿主机 iptables 的,而且一旦启动进程加上 -p host_port:guest_port 的端口映射,Docker Daemon 会直接增加对应的 FORWARD Chain 并且 -j ACCEPT,而默认的 DROP 规则是在 INPUT 链做的,对 docker 没法限制,这就留下了很严重的安全隐患。3)客户端收到服务端证书后,会先用本地的CA证书校验证书的有效性,如果证书有效,则继续下一步操作,证书无效则显示告警信息。

2024-07-25 16:23:12 2472 2

原创 Redis主从复制、哨兵以及Cluster集群

主从切换技术的方法是:当服务器宕机后,需要手动一台从机切换为主机,这需要人工干预,不仅费时费力而且还会造成一段时间内服务不可用。为了解决主从复制的缺点,就有了哨兵机制。哨兵的核心功能:在主从复制的基础上,哨兵引入了主节点的自动故障转移。

2024-07-24 10:07:01 641

原创 Docker 容器入侵排查

随着越来越多的应用程序运行在容器里,各种容器安全事件也随之发生,例如攻击者可以通过容器应用获取容器控制权,利用失陷容器进行内网横向,并进一步逃逸到宿主机甚至攻击K8s集群。容器的运行环境是相对独立而纯粹,当容器遭受攻击时,急需对可疑的容器进行入侵排查以确认是否已失陷,并进一步进行应急处理和溯源分析找到攻击来源。在应急场景下,使用docker命令可以最大程度利用docker自身的特性,快速的获取相关信息而无需进入容器内部,帮助我们进行溯源分析和解决问题。(4)使用docker kill 杀掉运行中的容器。

2024-07-23 15:53:15 482

原创 Ansible 的脚本 --- playbook 剧本(上)

vars:tasks:ansible-playbook test1.yaml -e "username=ctt" #在命令行里定义变量。

2024-07-23 15:39:39 758

原创 docker网络模式和Cgroup资源限制

可以先自定义网络,再使用指定IP运行docker。

2024-07-22 15:28:16 663

原创 Ansible自动化运维管理工具

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

2024-07-22 15:01:34 1047 3

原创 175道Docker面试题(上)

Docker是一个容器化平台,以容器的形式将我们的应用程序及其所有依赖项打包在一起,以确保我们的应用程序在任何环境中无缝运行,可以理解为一个应用打包、分发、部署的工具。我们也可以把它理解为一个轻量的虚拟机,Docker只虚拟我们的软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管我们要不要的软件。

2024-07-22 10:12:45 2829 1

原创 Docker-Compose单机容器集群编排工具

目录前言1.Docker-compose简介2. YAML 文件格式及编写注意事项3. Docker Compose配置常用字段4. Docker Compose 常用命令5. Docker Compose 文件结构(1)准备依赖文件(2)编写配置文件docker-compose.yml

2024-07-19 10:25:18 157

原创 【分布式技术】消息队列Kafka

Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据领域的实时计算以及日志收集。

2024-07-17 15:00:04 863

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

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

2024-07-17 14:23:27 1534

原创 Docker项目:Dockerfile构建LNMP

(1)公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作。(4)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地。(1)使用Docker构建LNMP环境并运行Wordpress网站平台。(2)限制Nginx容器最多使用500Mb的内存和1G的Swap。容器写 /dev/sda 的速率为。

2024-07-16 17:16:14 626

原创 Dockerfile镜像实战案例

FROM 第二构建阶段的基础镜像 #在第二阶段,复制上一阶段构建产物的文件或目录,并使用它来运行应用程序,这样最终的镜像中就不会有不必要的依赖和代码。COPY --from=第一构建阶段的别名 第一构建阶段的项目文件或目录 当前阶段的路径。2)尽可能的减少Dockerfile中的指令数量,从而减少镜像的层数。1)尽可能的使用较小体积的基础镜像(推荐使用 alpine 镜像)//启动容器,并挂载宿主机目录挂载到容器中,和进行初始化。//启动容器,并进行初始化。

2024-07-16 15:46:19 548

原创 Docker配置文件详解

默认情况下,当Docker守护程序终止时,它将关闭正在运行的容器。从Docker Engine 1.12开始,您可以配置守护程序,以便在守护程序不可用时容器仍在运行。默认情况下,当Docker守护程序终止时,它将关闭正在运行的容器。从Docker Engine 1.12开始,您可以配置守护程序,以便在守护程序不可用时容器仍在运行。# registry-mirrors: 加速站点,一般可以使用阿里、网易云、docker中国(https://registry.docker-cn.com)的地址。

2024-07-16 10:21:59 1978

原创 Docker 基本管理及部署

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

2024-07-15 17:27:05 970

原创 Docker的数据管理和网络通信

管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。

2024-07-15 16:53:21 1081

原创 Ceph应用之资源池pool管理

OSD总数小于5个,官方推荐 PG数为1285~10个,官方推荐 PG数为51210~50 个,官方推荐 PG数为1024大于50个,参考公式 PG 数=( Target PGs per OSD )* (OSD # )* ( %Data ) / (Size)Target PGs per OSD:表示每个OSD对应的PG数(如近期不扩容OSD数量可设置为100,如近期要扩容OSD数量可设置为200)OSD #:表示当前OSD总数。

2024-07-11 16:13:19 911

原创 分布式存储ceph部署

Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。

2024-07-10 15:39:54 961

原创 【分布式系统管理框架】Zookeeper集群

Zookeeper是一个开源的,为分布式框架提供协调服务的Apache项目。

2024-07-08 16:49:26 735

原创 rsync 远程同步

在Linux内核中,默认的inotify机制提供了三个调控参数:max_queue_events(监控事件队列,默认值为16384)、max_user_instances(最多监控实例数,默认值为128)、max_user_watches(每个实例最多监控文件数,默认值为8192)。inotifywait:可监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一有变动立即输出结果。该方法只适用于非第一次使用ssh命令,否则会报错;

2024-07-08 15:59:34 1041

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

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

2024-07-05 16:01:55 1107 4

原创 【Web缓存】Nginx和CDN应用

代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址将获得的网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

2024-07-03 16:38:53 837

原创 Redis数据类型

String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素hash用于存储对象。可以采用这样的命名方式:对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。如:存储 ID 为 2 的汽车对象如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。

2024-07-03 13:53:25 686

原创 监控平台zabbix介绍与部署

客户端:192.168.9.115进行配置案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 4 个,超过 4 个就发出报警信息#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中281行键值存放目录 Include=/etc/zabbix/zabbix_agent2.d/*.conf#自定义监控项的格式如下vim user_login.conf #创建一个键键名 如何获取服务端192.168.9.116进行验证。

2024-07-03 11:29:36 1238

原创 Redis配置与优化

基础数据类型包括:string(字符串)、list(列表,双向链表)、hash(散列,键值对集合)、set(集合,不重复)和sorted set也可以称为Zset(有序集合)结构类型结构存储的值结构的读写能力String可以是字符串、整数、浮点数对整个字符串或者字符串的其中一部分进行操作,对整数和浮点数执行自增或者自减操作list一个链表,链表上每个节点都包含了一个字符串从链表的两端推入或者弹出元素:根据偏移量对链表进行修剪:读取单个或多个元素,根据值查找或者移除元素set。

2024-07-01 20:28:29 946

空空如也

空空如也

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

TA关注的人

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