- 博客(455)
- 收藏
- 关注
原创 terraform执行命令
如果需要在某些资源被创建后执行本地命令,可以使用。如果命令需要在模块中执行,可以将模块定义为。如果需要在远程机器上执行命令,可以使用。配置来执行本地命令。Terraform 的。
2024-07-19 16:02:02
112
原创 Mac下ERROR: Cannot connect to the Docker daemon
这有可能是由于安装的是 docker Desktop, 它的docker.sock文件是在 ~/.docker/run/docker.sock 位置.只需要将执行下面的命令将该文件软链到~/.orbstack/run/docker.sock 即可.
2024-06-30 18:06:18
309
原创 Docker配置国内Docker镜像源
安装好Docker后,其是默认指向的。在国内该hub源访问速度异常慢,尤其是大一点的镜像经常出现timeout。我们可以通过切换至国内镜像仓库来解决这一问题。
2024-06-30 17:36:52
1130
原创 mac os安装 mysql5.7
出现以下输出代表 mysql5.7 已安装完毕。1 搜索 mac 支持的 mysql 版本。4 启动mysql@5.7。2 安装MySQL 5.7。5 登录 mysql。6 mysql 停服。
2024-06-30 17:26:38
237
原创 Kubernetes排错(八)-Pod 状态一直 Pending
可能是 pod 之前在另一个节点,但之前节点或kubelet挂了,现在漂移到新的节点上,但是之前pod挂载了云厂商的云盘,而由于之前节点或kubelet挂了导致无法对磁盘进行解挂,pod 漂移到新的节点时需要挂载之前的云盘,但由于磁盘未被之前的节点解挂,所以新的节点无法进行挂载导致pod一直pending。如果这个值小于 pod 的 request,就不满足 pod 的资源要求,也就不会调度上去,看下 pod 的 event,看下是否是因为网络原因无法下载镜像或者下载私有镜像给的 secret 不对。
2024-06-23 16:56:16
232
原创 内存碎片产生原因及如何避免内存碎片
内存碎片是指已经分配的内存块之间出现未被利用的空间,这种空间会导致内存利用率降低,从而影响系统的性能和稳定性。
2024-06-23 16:37:16
956
原创 Kubernetes排错(七)-Pod 状态一直 ContainerCreating
会被k8s识别成byte,所以pause容器一起来就会被 cgroup-oom kill 掉,导致pod状态一直处于ContainerCreating。memory limit 单位写错,误将memory的limit单位像request一样设置为小。查看 master 上 kube-controller-manager 状态,异常的话尝试重启。,这个单位在memory不适用,应该用。
2024-06-23 16:17:37
306
原创 kubernetes排错(六)-Pod 状态一直 Terminating
处理建议是参考Kubernetes 最佳实践:处理容器数据磁盘被写满 (https://tencentcloudcontainerteam.github.io/tke-handbook/best-practice/kubernetes-best-practice-handle-disk-full.html)加了一个它的标识,这意味着这个资源被删除时需要由创建资源的程序来做删除前的清理,清理完了它需要将标识从该资源的。,那么该资源一般是由某程序创建的,并且在其创建的资源的 metadata 里的。
2024-06-23 15:42:36
328
原创 如何区分应用所在的运行环境?
常见的应用运行环境主要有:物理机、虚拟机、容器或 K8s,那么如何确定应用运行在哪种未知环境下呢?本文主要介绍如何通过一种简单方式来判断应用当前所在的运行环境。
2024-06-23 15:27:31
216
原创 docker overlay网络原理详解
Overlay网络是一种在物理网络之上构建逻辑网络的技术,可以实现跨主机的容器通信。Overlay网络使用VXLAN协议实现跨主机通信,具有网络隔离、灵活性和安全性等优点,但也存在性能问题和配置复杂的缺点。在Docker中配置Overlay网络需要进行多个步骤,包括创建Overlay网络、加入容器、配置网络驱动和配置Swarm集群等。
2024-06-22 22:32:04
436
原创 Mac OS 如何在命令行下启动Docker
通过了解 podman 我们发现其是最理想的解决思路,因为podman 和 docker的命令基本一致。,但对于 mac 系统,需要启动 Docker Desktop 图形界面才能启动守护进程,它却无法在远程终端中打开。因为 docker 有一个守护进程,如果这个守护进程没有起来,就无法使用 docker 命令对容器进行管理。执行 docker images 不再报错。对于 linux 系统这个守护进程是。
2024-06-22 21:51:14
582
原创 yq 配置文件格式转换工具
go yq支持自定义函数,我们可以在处理文件时执行自定义逻辑。!go yq是一个强大而灵活的命令行工具,适用于处理多种文件格式如 YAML、JSON、XML、CSV、TOML 和属性文件。
2024-06-22 20:58:53
524
原创 Dockerfile实战
Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件,在持续集成和持续部署时,需要使用Dockerfile生成相关应用程序的镜像。
2024-06-22 18:14:22
638
原创 Docker配置文件daemon.json介绍及优化
是Docker守护进程的配置文件,它允许系统管理员自定义Docker守护程序的行为。此文件通常位于目录下。通过修改,可以调整Docker守护进程的多种设置,包括网络配置、日志记录、存储驱动等。在bridge:设置默认网桥名称。bip:设置网桥的IP地址和子网掩码。fixed-cidr:设置容器IP地址的范围。docker服务的默认子网为:172.17.0.0/16 , 如果虚拟机或者物理机的IP地址在该范围内,需要用bip做规避,以避免IP地址冲突问题。
2024-06-22 17:48:46
1915
原创 用 Terraform 初始化 GCP环境
完成以上步骤后,您已成功使用 gcloud 指令建立了一个 service account,并为其分配了适当的角色/权限。建立 service account 后,您可以为该账号新增所需的角色/权限。文件,这个文件是用来记录 Terraform 管理的资源状态,以及资源间的关联性。替换为刚刚建立的 service account 的电子邮件地址。安装 Terraform。替换为刚刚建立的 service account 的電子邮件地址。替换为您想要建立的 service account 名称,并将。
2024-06-22 16:50:14
512
原创 解决 iTerm [oh-my-zsh] plugin ‘zsh-autosuggestions‘ not found 错误
【代码】解决 iTerm [oh-my-zsh] plugin ‘zsh-autosuggestions‘ not found 错误。
2024-06-06 22:26:32
226
原创 github 访问慢问题处理
访问链接:https://raw.hellogithub.com/hosts(ps:这链接定时更新),获取对应的host配置。如果需要工具自动更新的话,点击链接:https://github.com/oldj/SwitchHosts。会下载一个文件,文件就是 github.com对应的 hosts 配置,更新 hosts 配置即可。
2024-06-06 22:05:04
133
原创 kubectl edit
和使用vi 打开yaml文件类似,改好以后,按esc键,输入 :wq保存,如果有改动,比如更换镜像,则会自动重新启动pod,可通过kubectl get pod -n default -w 实时查看pod的生命周期变动。编辑资源的配置信息,例如Pod、Service、Deployment等。
2024-06-05 09:40:25
185
原创 JVM 分析工具
在 $JAVA_HOME/bin 的目录下, 存在着许多小工具, 除了编译和运行 Java 程序外, 打包, 部署, 签名, 调试, 监控, 运维等各种场景都可能会用到它们。
2024-05-24 14:18:38
943
原创 go实现es数据清理工具
这里的Data是包含了ES服务地址等信息,我们后面会给出Data的数据结构。可以看到索引数据都是以日期结尾,我们可以根据日期去匹配索引数据,并对索引进行删除。这里需要考虑一点,有的Es服务开启了索引保护机制,不能通过。我们根据当前时间-保留天数,获取当前需要删除的日期数据。4、工具友好性,我们可以通过配置文件配置ES服务地址、日期格式化类型、保留天数等信息。3、通过字符串匹配,判断索引中是否包含要删除的日期,如果包含则进行删除。要获取Es服务中全部索引数据,我们首先连接Es服务器,这里我们使用。
2024-05-13 11:43:53
705
原创 K8S性能优化(一)-集群调优
因此,运行 10 个 pod 的系统实际上会运行 20 个容器。在安装大型集群或将现有的集群扩展到较大规模时,在安装集群设置集群网络 cidr 时,如果集群的节点数超过 500 个,则可能无法使用常用的集群网络 cidr。根据节点中的处理器内核数来设置节点可运行的 pod 数量。当两个参数都被设置时,其中较小的值限制了节点上的 pod 数量。把节点可以运行的 pod 数量设置为一个固定值,而不需要考虑节点的属性。设为 10 ,则该节点上允许的最大 pod 数量为 40。,以支持超过 500 个节点的环境。
2024-05-09 09:37:21
1269
原创 Terraform Init 加速方案配置
到此就完成了terraform离线本地源的配置了, 除了这种方式外其实也可以基于terraform开放的HTTP API协议,使用Python Flask写一个registry server。变量,让TerraformCLI可以加载到配置文件。环境变量指定 Terraform CLI 配置文件的位置,任何此类文件都应遵循命名模式。进行操作, 如果手动到registry下载,需要按照目录结构存放;配置文件,文件位置取决于主机的操作系统。,并直接放在相关用户的主目录中。下载,并按照目录结构存放到。
2024-05-08 19:51:55
580
原创 Kubernetes基础(三十一)-kubelet 参数/配置详解
基本参数--allow-privileged=true #允许容器请求特权模式 --anonymous-auth=false #不允许匿名请求到 kubelet 服务(默认 true ) --authentication-token-webhook=true #使用 TokenReview API 来确定不记名令牌的身份验证 --authorization-mode=Webhook #kubelet 服务的授权模式,Webhook 模式使用 SubjectAccessReview AP
2024-05-07 22:46:30
956
原创 Terraform输入变量
使用输入变量可以在创建基础设施资源时动态传入值,如果把Terraform代码看作是一个函数,那么输入变量都是函数参数。Terraform输入变量使用variable如上示例都是合法的变量定义,紧跟在variable关键字之后的就是变量名。在同一个Terraform模块(不包含子文件夹)中的变量名必须是唯一的,在代码中可以使用var.变量名的方式来引用变量的值。
2024-05-07 21:47:24
1245
原创 Terraform局部值
局部值使用localslocals {在一个locals块中可以定义多个局部值,当然在同一个Terraform模块中可以定义多个locals块。在localslocals {# 局部值引用的是资源属性如上示例,在locals块中定义的局部值引用的是资源属性,甚至还使用了函数concat()。如下示例在localslocals {common_tags = { # 这个局部值是一个对象类型,它在属性中引用了其他局部值。
2024-05-07 21:43:05
230
原创 Terraform输出值
如果把Terraform代码看作是一个函数的话,那么“输入变量”是函数的参数,而“局部值”是函数内部的局部变量,“输出值”就是函数的返回值。在Terraform代码中可以定义多个输出值。在执行命令成功之后会打印出定义的输出值信息,还可以通过打印出上一次执行成功之后得到的输出值。
2024-05-07 19:16:56
398
原创 Terraform资源
资源是Terraform中最核心的部分,使用Terraform的目的就是用于管理资源。在Terraform中,资源使用resource块定义。一个resource可以定义一个或多个基础设施资源对象,如:VPC,虚拟机,DNS记录,Consul的键值对数据等。
2024-05-07 18:26:12
967
原创 Terraform数据源
数据源允许查询或计算一些数据以供其他地方使用。使用数据源可以使得Terraform代码使用在Terraform管理范围之外的一些信息,或者是读取其他Terraform代码保存的状态。每一种Provider都可以在定义一些资源类型的同时定义一些数据源。通常来讲,在同一个云服务产品下有不同的资源和对应的数据源,资源(resource)用于对远程基础设施进行增删改,数据源(data)用于对远程基础设施进行查询。
2024-05-07 18:22:42
792
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人