云原生
云原生
张哲溪
日拱一卒,功不唐捐
展开
-
制作php8.0以上+nginx服务+扩展的镜像
【代码】制作php8.0以上+nginx服务+扩展的镜像。原创 2024-06-23 15:30:39 · 516 阅读 · 1 评论 -
kube-state-metrics组件
Kube-state-metrics:通过监听API Server生成有关资源对象的状态指标,比如Deployment、Node、Pod,需要注意的是kube-state-metrics只是简单的提供一个metrics数据,并不会存储这些指标数据,所以我们可以使用Prometheus来抓取这些数据然后存储,主要关注的是业务相关的一些元数据,比如Deployment、Pod、副本状态等;调度了多少个replicas?多少个Pod是running/stopped/terminated状态?Pod重启了多少次?原创 2024-01-10 22:22:31 · 2090 阅读 · 2 评论 -
docker 无用镜像清理方法
1、通过第一步统计出来,哪些镜像最多。2、根据统计出来的最多镜像进行删除操作。原创 2024-01-10 22:18:05 · 497 阅读 · 0 评论 -
添加node节点
使用kubeadm部署kubernetes集群的时候,需要在原有的集群中添加node节点。使用以下脚本在新服务器上安装环境需要的依赖包和依赖的服务。原创 2023-12-26 16:34:08 · 871 阅读 · 0 评论 -
kubernetes 的挂载传播 mountPropagation
你可以通过/proc/[pid]/mounts查看到所有挂载在当前namespace中的文件系统,还可以通过/proc/[pid]/mountstats看到mount namespace中文件设备的统计信息,包括挂载文件的名字、文件系统类型、挂载位置等等。换句话说,如果主机在卷挂载中挂载任何内容,则Container将看到它挂载在那里。所谓传播事件,是指由一个挂载对象的状态变化导致的其它挂载对象的挂载与解除挂载动作的事件。从从属挂载克隆的挂载对象也是从属的挂载,它也从属于原来的从属挂载的主挂载对象。原创 2023-12-26 16:35:54 · 1236 阅读 · 0 评论 -
kubernetes部署ghost
ghost是一款用 Node.js 编写,功能强大的无头 CMS。它的强大之处在于提供了丰富、免费、可自定义的主题,用户可以自由搭配轻松建站。专业的会员订阅和数据可视化功能,让内容创作者可以围绕内容,尝试发展商业化业务。除此之外,它还拥有先进的所见即所得编辑器。相比WordPress的大而全,Ghost要清新的多,后台简洁,并提供了完整的Markdown编辑器进行博客创作。可使用轻量的SQLite作为数据库,对于小型博客,维护起来更方便(同时也支持MySql)完全的Markdown编辑器支持。原创 2023-09-08 16:39:53 · 301 阅读 · 0 评论 -
kubernetes部署milvus
Milvus创建于2019年,其唯一目标是存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大量嵌入向量。嵌入向量数据库Milvus是一种专门为处理输入向量查询而设计的数据库,能够在万亿规模上对向量进行索引。与传统的关系数据库不同,Milvus主要按照预定义的模式处理结构化数据。这种数据库的设计理念注重自下而上,适用于处理从非结构化数据转换而来的嵌入向量。Milvus的出现为处理大规模向量数据提供了一种全新的解决方案。原创 2023-08-08 11:24:24 · 3664 阅读 · 1 评论 -
docker-compose部署milvus
在部署attu服务的时候,attu的镜像一定要和milvus服务的版本号保持一致。其中, attu IP 表示运行 attu 环境的 IP 地址, milvus server IP 是运行 Milvus 环境的 IP 地址。上一篇介绍了使用kubernetes来部署milvus,这篇介绍下使用docker-compose来部署milvus。默认下载下来的文件只有读写权限,使用 chmod +x docker-compose,为其添加执行权限,也可以使用。使用docker方式部署attu。原创 2023-08-09 11:41:45 · 1357 阅读 · 5 评论 -
使用easeprobe进行SLA探测
EaseProbe是一款开源的探活工具,由左耳朵耗子为主要开发。EaseProbe是一个简单、独立、轻量级的工具,可以进行健康/状态检查,是用Go开发的一款工具。EaseProbe 主要完成3个目标工具: 探测、通知、报告。原创 2023-06-22 19:58:48 · 804 阅读 · 0 评论 -
kubernetes部署grafana
Grafana是一款流行的开源可视化平台,它支持与多种监控系统的集成,如Prometheus、Zabbix等。使用kubernetes来部署grafana服务。亲测可用。原创 2023-06-22 09:41:21 · 1564 阅读 · 0 评论 -
kubernetes部署prometheus
Prometheus是一款由SoundCloud开发的开源监控系统,它提供了实时监测和报警功能。使用kubernetes来部署prometheus服务,prometheus数据持久化到NFS。亲测可用。原创 2023-06-22 09:36:38 · 2115 阅读 · 0 评论 -
docker守护进程dockerd
2、可以使用-H tcp://0.0.0.0:2375 2375在所有网络接口上的端口2375上监听,也可以使用其IP地址-H tcp://192.168.0.1:2375在特定的网络接口上监听端口-H tcp://192.168.0.1:2375。3、在基于Systemd的系统上,可以通过dockerd -H fd:// 套接字激活与守护程序通信,请使用dockerd -H fd://。使用fd://可以在大多数设置中完美运行,但是您也可以指定单个套接字: dockerd -H fd://3。原创 2023-06-16 13:40:26 · 4657 阅读 · 0 评论 -
k8s 对已完成job自动清理
job在处理完一个任务以后,状态会变成Completed,job在状态为Completed的时候默认不会自动清理的,还会继续占用系统资源。原创 2023-05-28 17:25:56 · 2091 阅读 · 0 评论 -
通过命令行创建harbor镜像库
这个是json文件: {"project_name": "google_containers","metadata": {"public": "true"}} ,其中google_containers可以根据自己xian项目的名称来定义。这个是执行命令# curl -u "admin:Harbor12345" -X POST -H "Content-Type: application/json" "10.8.1.6:1121/api/projects" -d @createproject.json原创 2020-09-22 12:29:31 · 1303 阅读 · 0 评论 -
harbor二进制安装文件下载地址
官方主页:https://github.com/goharbor/harbor/releases选择合适的资源包:harbor-offline-installer-v2.2.1.tgz解压对应安装包:tar xvf harbor-offline-installer-v2.2.1.tgz原创 2021-04-17 22:40:46 · 589 阅读 · 2 评论 -
根据overlay2文件名查找容器
有时候经常会有个别容器占用磁盘空间特别大,这个时候就需要通过docker overlay2 目录名查找对应容器名:1.首先进入到 /var/lib/docker/overlay2 目录下,查看谁占用的较多du -s ./* | sort -rn | more2、查出所占用的大文件3、再通过目录名查找容器名 docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver原创 2022-05-23 14:03:30 · 1718 阅读 · 2 评论 -
docker镜像下载加速配置
网易163镜像加速–registry-mirror=http://hub-mirror.c.163.com中科大镜像加速–registry-mirror=https://docker.mirrors.ustc.edu.cn阿里云镜像加速–registry-mirror=https://{your_id}.mirror.aliyuncs.comdaocloud镜像加速–registry-mirror=http://{your_id}.m.daocloud.io...原创 2021-01-25 10:37:29 · 349 阅读 · 0 评论 -
Dockerfile CMD和ENTRYPOINT
Dockerfile中的CMD和ENTRYPOINT首先CMD和ENTRYPOINT这两个指令都是用来指定容器启动时运行的命令。单从功能上来看,这两个命令几乎是重复的。单独使用其中的一个就可以实现绝大多数的用例。但是既然 doker 同时提供了它们,为了在使用中不至于混淆,下面我试图总结一下他们两个的区别以及各自的用法。exec 模式和 shell 模式CMD 和 ENTRYPOINT 指令都支持 exec 模式和 shell 模式的写法,所以要理解 CMD 和 ENTRYPOINT 指令的用法,就原创 2021-11-16 22:37:05 · 5001 阅读 · 0 评论 -
docker二进制部署安装包下载地址
https://download.docker.com/linux/static/stable/原创 2020-12-06 11:35:46 · 630 阅读 · 0 评论 -
查看容器在宿主机的进程ID
使用如下命令,查看容器在宿主机的进程ID号docker inspect --format '{{ .State.Pid }}' e94cf5a8f5eb原创 2022-02-12 15:46:16 · 1555 阅读 · 0 评论 -
docker registry和repository的区别?
Repository:镜像仓库,用于存储具体的docker镜像,起到的是仓库存储作用,比如Tomcat下面有很多个版本的镜像,它们共同组成了Tomcat的Repository,我们通过tag来区分镜像版本Registry:注册服务器,管理镜像仓库,起到的是服务器的作用,比如官方的是Docker Hub,它是开源的,我们一般通过docker pull默认是拉取官方镜像仓库的镜像,当然我们也可以自...原创 2020-03-30 16:44:34 · 945 阅读 · 0 评论 -
docker-compose介绍
1. Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。2. Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指...原创 2020-03-30 16:57:36 · 318 阅读 · 0 评论 -
docker容器里添加中文字体-微软雅黑字体
前言最近开发那边接到一个需求:在服务端生成图片,这样一个需求,但是由于我们容器里面没有中文字体,所以中文显示不出来,显示乱码的情况。然后开发就给我提了一个需求,想让他的这个项目在部署所有环境的时候,docker容器里自动安装一个中文字体,字体是微软雅黑的。处理步骤:1.准备中文字体-微软雅黑首先到容器里查询一下,确实没有字体。那我就得准备字体然后拷贝到容器里。1、windows下有很多字体可以拿来使用,在C:\Windows\Fonts文件夹下找到需要安装的字体mac的字体在/System/Li原创 2022-04-22 13:30:20 · 12646 阅读 · 8 评论 -
docker run --rm 选项详解
今天在看docker的相关书籍,看到了docker run --rm这个选项:在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。示例如下:docker run --r...原创 2020-03-30 16:33:30 · 8828 阅读 · 0 评论 -
Docker配置文件配置镜像加速器
cat /etc/docker/daemon.json{ "insecure-registries": ["xxx.xxx.xx.xx:xxxx"], "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com"], "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "log-opt...原创 2020-10-11 13:05:45 · 1145 阅读 · 0 评论 -
定时清理三个月以外的docker镜像
使用shell脚本来实现清理三个月以外的镜像,然后使用crontab定期执行shell脚本。#!/bin/bashtime=`docker images |grep 'months' |awk '{print $4}'`for i in $timedo if [ $i -ge 3 ]; then docker images | awk '{print $3}' |xargs docker rmi fidone容器化环境可以将这个shell脚本做成一个镜像,然后cronjob来原创 2021-08-07 20:11:24 · 1073 阅读 · 0 评论 -
ETCD的架构
etcd的架构主要分为4个部分❏ HTTP Server:用于处理用户发送的API请求以及其他etcd节点的同步与心跳信息请求。❏ Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等。它是etcd对用户提供的大多数API功能的具体实现。❏ Raft:Raft强一致性算法的具体实现,是etcd的核心。❏ WAL:即Write Ahead Log(预写式日志),它是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd还通原创 2021-05-29 21:29:15 · 512 阅读 · 2 评论 -
ETCD启动不起来-超时问题
问题背景:当前部署了 3 个 etcd 节点,突然有一天 3 台集群全部停电宕机了。重新启动之后发现 K8S 集群是可以正常使用的,但是检查了一遍组件之后,发现有一个节点的 etcd 启动不了。经过一遍探查,发现时间不准确,通过以下命令 ntpdate ntp.aliyun.com 重新将时间调整正确,重新启动 etcd,发现还是起不来,报错如下:Mar 05 14:27:15 k8s-node2 etcd[3248]: etcd Version: 3.3.13Mar 05 14:27:15 k8s原创 2021-01-02 09:34:14 · 9491 阅读 · 3 评论 -
containerd 拉取k8s.gcr.io/pause镜像i/o timeout
由于k8s.gcr.io 需要连外网才可以拉取到,导致 k8s 的基础容器 pause 经常无法获取。k8s docker 可使用代理服拉取,再利用 docker tag 解决问题docker pull mirrorgooglecontainers/pause:3.1docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1但是我们k8s集群中使用的CRI是containerd。所以只能通过 docker tag 镜像,再使用 c原创 2022-04-18 21:13:34 · 4382 阅读 · 0 评论 -
did you specify the right host or port报错处理
根据报错信息可以看到bootstrap-kubelet.conf文件已经不存在了,导致kubelet无法启动。应该是证书过期了,才导致无法执行kubectl命令了。需要手动来更新证书文件。执行完这几步以后,在试下kubectl get node,就可以查询出来node节点信息了。集群是用kubeadm来部署的。需要执行kubeadm命令来进行更新证书。原创 2023-02-15 15:03:24 · 1109 阅读 · 0 评论 -
容器化服务信号量传递
容器化服务信号量传递原创 2022-11-17 13:53:12 · 780 阅读 · 1 评论 -
没有 selector 的 Service
访问这个服务的工作方式与其它的相同,唯一不同的是重定向发生在 DNS 层,而且不会进行代理或转发。如果后续决定要将数据库迁移到 Kubernetes 集群中,可以启动对应的 Pod,增加合适的 Selector 或 Endpoint,修改 Service 的 type。相反地,对于运行在集群外部的服务,它通过返回该外部服务的别名这种方式来提供服务。访问没有 selector 的 Service,与有 selector 的 Service 的原理相同。原创 2022-10-23 17:11:05 · 544 阅读 · 1 评论 -
k8s上部署seata-server集群并注册到nacos上
部署seata-server集群并注册到nacos上原创 2022-10-22 10:32:36 · 2374 阅读 · 2 评论 -
nacos添加权限控制的鉴权功能
nacos添加权限控制原创 2022-10-05 10:23:52 · 4713 阅读 · 1 评论 -
k8s部署nacos集群模式
主要是在k8s集群部署nacos集群(3节点),数据库使用外置的 mysql ,由于有现成的阿里云RDS,就直接使用了。相比官方的在k8s内创建数据库的方案更方便。所有nacos配置 全部保存在数据库中,不用担心重启掉线等异常导致配置文件丢失。Nacos及所有相关服务都部署在default 命名空间,配置文件中未指定命名空间,如需指定命名空间可在配置文件增加 metadata.namespace 属性,指定命名空间。原创 2022-09-27 18:43:06 · 5342 阅读 · 8 评论 -
限制容器中的进程
限制容器中的进程原创 2022-09-08 16:19:03 · 1732 阅读 · 1 评论 -
部署metersphere
Helm Charts 方式部署 MeterSphere原创 2022-07-16 10:30:41 · 946 阅读 · 1 评论 -
部署storageclass踩坑记录
部署storageclass踩坑记录原创 2022-07-12 21:07:13 · 2325 阅读 · 0 评论 -
kubernetes配置拉取私有仓库镜像
kubernetes配置拉取私有镜像仓库原创 2022-06-06 21:09:39 · 1577 阅读 · 1 评论 -
ssh登录服务器缓慢问题
问题描述问题刚开始是由pod启动失败,报错unable to ensure pod container exists: failed to create container for [kubepods burstable pod8a412f93-77e9-412c-9735-fd44dbb668e0] : dbus: connection closed by user 产生的,当时在ssh登录服务器的时候,ssh登录特别慢,差不多半分钟才登录成功。解决步骤:1.当时没有先查看ssh登录慢的问题,一直在原创 2022-04-28 14:49:48 · 2693 阅读 · 0 评论