CI构建报错提示No such device or addres
问题CI构建报错,报错内容如下
1fatal: could not read Username for 'https://gitee.com': No such device or address
原因这是因为git config文件中没有用户身份信息。
解决方法在请求串中加入身份信息即可: 格式
1https://[username]:[password]@gitee.com/[username]/project.git
操作如下:
123456789101112131415161718192021222324##修改.git/configcd .gitvim config[init] defaultBranch = none[fetch] recurseSubmodules = false[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true[lfs] ...
pdns高可用高并发部署
企业DNS系列一PowerDNS Authoritative和Recursor搭建在企业私有云和公有云环境中,DNS服务的重要性不言而喻,企业往往需要搭建一套稳定可靠的DNS系统,本系列Blog将通过开源的PowerDNS全家桶搭建基于Linux平台的、具备高性能、高可靠性的企业DNS系统。
2022年月8月12日更新:在企业使用GSLB(全局负载均衡)进行应用保护时,PowerDNS权威服务器CNAME和NS解析正常,但PowerDNS递归服务器无法正常工作,这是由于递归服务器默认不对私有IP地址进行二次解析,需要修改PowerDNS递归服务器的“dont-query=127.0.0.1/8”
基于PowerDNS构建的企业DNS架构概述PowerDNS全家桶中包含PowerDNS Authoritative、Recursor、DNSList(暂不使用)三个组件。
PowerDNS Authoritative:DNS权威服务器,用于提供企业私有域名的管理和解析;
PowerDNS Recursor:DNS递归服务器,用于接受客户端DNS查询请求,并根据目标域转发 ...
使用 Kaniko 构建镜像
1. 什么是 kanikoGoogle 2018 年发布的 kaniko 是一种在容器或 Kubernetes 集群内无需特权从 Dockerfile 构建容器镜像的工具。
kaniko 不依赖于 Docker 守护进程,而是完全在用户空间中执行 Dockerfile 中的每个命令,并对所构建的文件系统更改做快照。
2. kaniko 是如何工作的
• 1.读取指定的Dockerfile。
• 2.将基本映像(在FROM指令中指定)提取到容器文件系统中。
• 3.在独立的Dockerfile中分别运行每个命令。
• 4.每次运行后都会对用户空间文件系统的做快照。
• 5.每次运行时,将快照层附加到基础层。
3. 工作原理kaniko作为一个容器镜像运行,它接受三个参数:一个 Dockerfile ,一个构建上下文(context)以及将镜像推送到的镜像仓库。它在执行程序镜像中提取基本镜像的文件系统。然后,在Dockerfile中执行任何命令,快照用户空间中的文件系统。Kaniko在每个命令后都会将一层已更改的文件附加到基本镜像。最后,执行程序将新镜像推送到指定的注册表。由于Kanik ...
Prometheus 自定义告警规则
一、概述
通过创建 Prometheus 监控告警规则,您可以制定针对特定 Prometheus 实例的告警规则。当告警规则设置的条件满足后,系统会产生对应的告警事件。如果想要收到通知,需要进一步配置对应的通知策略以生成告警并且以短信、邮件、电话、钉群机器人、企业微信机器人或者 Webhook 等方式发送通知。
从 Prometheus server 端接收到 alerts 后,会基于 PromQL 的告警规则 分析数据,如果满足 PromQL 定义的规则,则会产生一条告警,并发送告警信息到 Alertmanager,Alertmanager 则是根据配置处理告警信息并发送。所以 Prometheus 的告警配置依赖于PromQL与AlertManager,关于这两个介绍可以参考以下文章:
Prometheus AlertManager 实战[1]
Prometheus PromQL 实战[2]
Prometheus Pushgetway 实战[3]
官方文档
二、告警实现流程设置警报和通知的主要步骤是:
在 Prometheus 中配置告警规则。
配置 Prometheus ...
盘点Linux的几种配置代理方式
编译环境代理1、linux设置代理123export http_proxy=http://10.67.11.138:7890export https_proxy=http://10.67.11.138:7890
2、Container设置代理(container内部服务代理)1cat /root/.docker/config.json
123456789{ "proxies": { "default": { "httpProxy": "http://10.67.11.138:7890", "httpsProxy": "http://10.67.11.138:7890" } }}
3、dockerd代理(docker pull)123456789systemctl cat docker# /usr/lib/systemd/system/docker.service...[Service] ...
ingress 兼容旧版tls
Ingress支持哪些SSL/TLS版本?Ingress-Nginx默认支持TLS V1.2及V1.3版本,对于部分旧版本的浏览器,或者移动客户端TLS版本低于1.2时,会导致客户端在与Ingress-Nginx服务SSL版本协商时报错。
修改kube-system/nginx-configuration configmap添加以下配置,为Ingress-Nginx开启支持更多TLS版本的功能。具体操作,请参见TLS/HTTPS。
12ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POL ...
k8s集群修改cidr
当集群的pod地址和本地网络冲突时,会导致集群无法访问本地资源,这种情况可以使用防火墙的DNAT做映射来规避,但不是一劳永逸的方法,要想一劳永逸,则需更改其中一个环境的cidr,对于一个公司来说,更改集群的cidr比较实际,下面以集群的10.244.0.0/16更改为10.245.0.0/16为例
kubeadm-config1[root@master1 ~]# kubectl -n kube-system edit cm kubeadm-config
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182# Please edit the object below. Lines beginning with a '#' will be ignored,# and an empty file will abort ...
K8s 三种探针
▍POD 状态Pod 常见的状态
Pending:挂起,我们在请求创建 pod 时,条件不满足,调度没有完成,没有任何一个节点能满足调度条件。已经创建了但是没有适合它运行的节点叫做挂起,这其中也包含集群为容器创建网络,或者下载镜像的过程。
Running:Pod 内所有的容器都已经被创建,且至少一个容器正在处于运行状态、正在启动状态或者重启状态。
Succeeded:Pod 中所以容器都执行成功后退出,并且没有处于重启的容器。
Failed:Pod 中所以容器都已退出,但是至少还有一个容器退出时为失败状态。
Unknown:未知状态,所谓 pod 是什么状态是 apiserver 和运行在 pod 节点的 kubelet 进行通信获取状态信息的,如果节点之上的 kubelet 本身出故障,那么 apiserver 就连不上 kubelet,得不到信息了,就会看 Unknown。
Pod 重启策略
Always: 只要容器失效退出就重新启动容器。
OnFailure: 当容器以非正常(异常)退出后才自动重新启动容器。
Never: 无论容器状态如何,都不重新启动容器。
Pod 常见 ...
容器运行时概览
01 容器运行时分类Docker属于容器技术早期的发展项目,也是目前最广泛的容器引擎技术。当然,随着容器生态圈的日益繁荣,业界慢慢也出现了其他各种运行时工具,如containerd、rkt、Kata Container、CRI-O等。这些工具提供的功能不尽相同,有些只有容器运行的功能,有些除运行容器外还提供了容器镜像的管理功能。根据容器运行时提供功能,可以讲容器运行时分为低层运行时和高层运行时。
低层运行时主要负责与宿主机操作系统打交道,根据指定的容器镜像在宿主机上运行容器的进程,并对容器的整个生命周期进行管理。而这个低层运行时,正是负责执行我们前面讲解过的设置容器 Namespace、Cgroups等基础操作的组件。常见的低层运行时种类有:
runc:传统的运行时,基于Linux Namespace和Cgroups技术实现,代表实现Dockerrunv:基于虚拟机管理程序的运行时,通过虚拟化 guest kernel,将容器和主机隔离开来,使得其边界更加清晰,代表实现是Kata Container和Firecrackerrunsc:runc + safety ,通过拦截应用程序的所 ...
(Docker)Alpine apk设置国内源
运行容器xxx,示例12345docker run -d \--name jk -u root \-p 9090:8080 \-v /var/jenkins_home:/var/jenkins_home \jenkinsci/blueocean
进入容器1docker exec -it jk bash #这里的“jk”是指你创建的镜像容器
修改源
1sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
更新设置
1apk update
然后你就可以愉快的使用apk了:apk add maven
附录
12345678910111213#apk命令apk update #更新最新本地镜像源apk upgrade #升级软件apk add --upgrade busybox #指定升级部分软件包apk search #查找所以可用软件包apk search -v #查找所有可用软件包及其描述内容apk search -v 'acf*' ...