A ?Charis
8块腹肌的基础架构工程师。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kubernetes-使用集群CA证书给用户颁发客户端证书访问Api-Server(二)
在CA根证书的下方是server,这里的server指的是api-server的SAN属性的地址以及对外暴露的服务端口,因为api-server的证书也是被同一个CA根证书签发的,所以你用被同一个CA根证书签发的证书就可以通过证书验证。这里显示的是config文件中的名称,但我是从config直接复制的证书数据所以不会错。也就是集群的根证书。那么集群的local怎么来的,其实也是config文件中自己定义的名称,但是其中的。*这里有一个kind为User,这里的重点是这里的User就是证书里的CN名称。原创 2025-01-08 13:37:07 · 93 阅读 · 0 评论 -
K8S集群更新api-sever证书的SAN属性
1、当你的api-server需要更新API 服务器的地址和端口号就会使用到SAN属性证书。1、生成新的证书签名请求 (CSR)首先,生成一个新的私钥和 CSR 文件,确保包含。2、查看证书的SAN属性。二、如何更新SAN证书的步骤。原创 2025-01-07 23:05:49 · 315 阅读 · 0 评论 -
记录一次、自己搭建镜像加速站的过程
kubectl apply -k {kustomization.yaml所在目录} + -n 2、不同远端仓库同一个ingress-nginx怎么处理最佳。容器内:/etc/distribution/config.yml。2、集群+ingress。利用远端仓库本地缓存的方式进行加速。一、HK地理位置的云主机(重点是魔法)1、单机+nginx。三、git clone下面这个项目。2、下面为官方的解释,看完秒懂。按项目操作即可,分单机和集群。一、搭建镜像加速站的核心项目。原创 2025-01-04 15:16:54 · 107 阅读 · 0 评论 -
Cilium-Kubernetes Ingress Support
Cilium的 Ingress controller 具体实现是Envoy.原创 2024-10-12 16:52:34 · 162 阅读 · 0 评论 -
Cilium-实战系列-(三)Cilium-Multi Networking-多网络
*主网络的isovalentpodnetworks default是默认生成的,你可以把这个CRD资源理解成配置路由。查看cilium为多网络pod分配的endpoint,endpoint就是一个逻辑上的表示,当然它有更多属性。*主网络的 ciliumpodippools.cilium.io default根据配置文件默认生成的。*通过Cilium管理节点上的pod cidr.网络分为主网络和第二网络。默认路由指的是未知路由目的地的数据包会丢向缺省路由,也就是主网络。3、禁用第二网络的SNAT。原创 2024-10-06 17:26:59 · 378 阅读 · 0 评论 -
Cilium-实战系列-(二)Cilium-Cluster Mesh-服务全局负载均衡
我搞了一个非常简单的web应用,访问/hello的路径返回:“Hello, Kubernetes from rke-top!like this:因为每个电脑的CPU架构不一致,为了避免因为base image编译问题,我放在Github仓库,地址如下。**busybox是为了方便调试测试。*执行dockerfile打包。*然后进入/k8s部署即可,按需修改configmap.会影响curl返回的显示。原创 2024-10-06 13:27:22 · 546 阅读 · 0 评论 -
Kubernetes-使用不同主机终端访问k8s 集群。
通常,`kubeconfig` 文件位于用户主目录下的 `.kube` 目录中,文件名为 `config`。打开 `kubeconfig` 文件,找到 `clusters`、`users` 和 `contexts` 部分。要获取 Kubernetes 集群的 CA 证书、客户端证书和客户端密钥,通常需要访问集群的配置文件(如 `kubeconfig` 文件)。要在 `kubectl` 中添加一个新的 context,可以使用 `kubectl config set-context` 命令。原创 2024-10-05 22:59:32 · 493 阅读 · 0 评论 -
Cilium-实战系列-(一)Cilium-安装与部署
前言:1、首先说一下和为 “一文一武”,一个注重点解,一个注重实际操作。Cilium + ebpf 系列文章-什么是ebpf?(一)_clium ebpf-优快云博客文章浏览阅读419次。一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。原创 2024-10-05 10:53:51 · 711 阅读 · 0 评论 -
K8s Calico替换为Cilium,以及安装Cilium过程(鲁莽版)
这将会下载并解压 Cilium 的 Helm Chart 到当前目录下的 `cilium` 文件夹中。### 步骤 3:下载 Cilium Helm Chart 到本地。### 步骤 2:添加 Cilium Helm 仓库。#### 添加 Cilium Helm 仓库。### 步骤 1:安装 Helm。#### 安装 Helm。一、删除Calico。二、下载Cilium。三、安装Cilium。原创 2024-09-22 21:17:59 · 961 阅读 · 0 评论 -
Cilium + ebpf 系列文章- (六)Cilium-BGP
CiliumBGPPeerConfig配置对等连接的行为,可以引用一个或多个CiliumBGPAdvertisement资源(使用选择器)可以是pod也可以是svc的外部地址。CiliumBGPPeerConfig 这个主要是管理建立邻居的特殊参数。这个命令通过指定这些参数来定制 Cilium 的安装和配置,以满足特定的网络需求。这个命令用于安装 Cilium,并配置一些特定的参数。*但是上面举的例子只是通告了pod的cidr,即pod的ip地址可以路由。*上面就是典型的数据中心BGP架构。原创 2024-09-27 16:50:07 · 732 阅读 · 0 评论 -
Cilium + ebpf 系列文章- (七)Cilium-BGP-自定义定时器-ebgp多跳-优雅重启-MD5加密-传播团体字
时间的3倍,即90秒。这是BGP在关闭连接之前从对等体发来的连续消息之间等待的时间。在BGP对等过程中,如果初次尝试TCP连接失败,则使用连接重试定时器。它决定了BGP路由器与BGP对等体建立TCP连接的后续尝试时间间隔。Keepalive用于维护邻居关系,如果在协商的保持时间内没有收到Keepalive消息,则BGP将断开邻居连接。默认是没有开启优雅重启功能的,BGP控制层面断了,工作节点上的路由也没有了。按道理,BGP的控制器重启不应该影响工作节点的路由信息。*在准备建立邻居的时候会包含MD5的信息。原创 2024-09-28 10:14:52 · 518 阅读 · 0 评论 -
kubernetes-强制删除命名空间
1、删除命名空间卡住、强制删除也卡住。2、其他终端显示命名空间下无资源。获取命名空间json描述文件。2、修改finalize字段。原创 2024-10-02 11:39:24 · 945 阅读 · 0 评论 -
Cilium + ebpf 系列文章- (五)Cilium 混合模式替换 Calico,以及安装Cilium过程(思路清晰版)
Calico替换为Cilium 有两个做法,一种鲁莽版,一种思路清晰版。今天这遍文章是官方最佳实践版本。原创 2024-09-26 17:10:13 · 1802 阅读 · 0 评论 -
VMware提供虚拟硬盘并使得Oracle Linux集群共享块设备并绑定raw设备。
一、Vmware操作nodeA :1、创建SCSI控制器:类型为物理。添加新磁盘。类型为独立-持久。nodeB:新增磁盘,但是选择node A刚才创建的磁盘。类型:独立-持久。二、OS层操作。原创 2024-09-25 17:02:29 · 158 阅读 · 0 评论 -
Cilium + ebpf 系列文章- XDP (eXpress data Path)(四)
ebpf技术可以将XDP类型的ebpf程序附加在物理/虚拟网卡侧,即数据包都还没有到达内核的网络数据盏之前进行拆包!2、Pod的网络命名空间由Pod内的容器使用并共享但是由暂停容器(Pause Container)管理。5、当你的数据包到达其他节点的kube-proxy时,kube-proxy拦截,iptables查表。这段代码展示了一个简单的 eBPF XDP 程序,它在处理每个网络数据包时打印一条消息并增加一个计数器。3、Pod内的容器网络通过veth_pair对与主机网络命名空间打通。原创 2024-09-24 21:13:17 · 156 阅读 · 0 评论 -
Cilium + ebpf 系列文章-ebpf-tool(三)
本篇文章:主要是在介绍和演示用户空间侧ebpf调试工具-ebpf-tool一、项目地址。原创 2024-09-23 22:44:01 · 172 阅读 · 0 评论 -
Cilium + ebpf 系列文章-ebpf-map(二)
一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。##上面的实验是为了证明你在用户空间编写的ebpf程序可以在内核中运行,并且监控系统调用和内核函数。它们可用于在eBPF程序之间和与用户空间代码共享信息——例如,将配置传递到eBPF程序中,或将在内核中收集的可观察性数据发送到用户空间。上一章节讲述了什么是:ebpf.原创 2024-09-23 20:26:46 · 182 阅读 · 0 评论 -
Cilium + ebpf 系列文章-什么是ebpf?(一)
一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。3、当你执行l s操作时,会调用open的系统调用,然后open的系统调用具体是使用do_sys_open这个内核函数来具体执行!##上面的实验是为了证明你在用户空间编写的ebpf程序可以在内核中运行,并且监控系统调用和内核函数。这篇非常非常干,很有可能读不懂。原创 2024-09-23 19:52:39 · 595 阅读 · 0 评论 -
Docker Networking Tutorial(Mac-vlan vs Bridge vs overlay)
一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。二、Test-step。原创 2024-09-22 00:02:59 · 306 阅读 · 0 评论 -
Docker Networking Tutorial (Bridge - None - Host - IPvlan - Macvlan )
四、mac-vlan。原创 2024-09-21 17:31:36 · 204 阅读 · 0 评论 -
5分钟配置Nginx?(二)
此文章分为两个部分。5分钟搞懂什么是Nginx?(一)-优快云博客文章浏览阅读82次。2.、那么此时入口的安全性则格外重要,同时因为加强了入口的安全性,后端的web server的安全则可以不用做额外安全工作。因为入口如果破防,后端web server一定破防,如果不加proxy server,后端web server直接暴露在公网上,破防也只是时间问题。2、prosy server 直接转发加密的请求到后端 web server,web server自行解密。原创 2024-09-12 23:24:57 · 494 阅读 · 0 评论 -
VMware账户授权迁移Broadcom账户-操作指南
3、 注册成功后,点击你的账户名,点击Build your profile.7、点击页面左边的“我的凭证”,里面就有你之前在VMware的所有授权。比如:历史记录、授权升/降级等等。8、关于授权的完整操作,请查看下面的指南。2、登陆下面网址用你的企业邮箱注册账户。1、拨打电话获取Site ID。5、等待3分钟,切换浏览器。一、拨打博通-支持电话。原创 2024-09-10 16:59:22 · 2400 阅读 · 0 评论 -
5分钟搞懂什么是Nginx?(一)
2.、那么此时入口的安全性则格外重要,同时因为加强了入口的安全性,后端的web server的安全则可以不用做额外安全工作。因为入口如果破防,后端web server一定破防,如果不加proxy server,后端web server直接暴露在公网上,破防也只是时间问题。2、prosy server 直接转发加密的请求到后端 web server,web server自行解密。1、因为设置了proxy server之后整个后端web server都被入口proxy server代理了。2、分片(块)传输。原创 2024-09-05 22:30:35 · 185 阅读 · 0 评论 -
Rancher-RKE2-安装流程
1.重要的是,RKE2 不像 RKE1 那样依赖 Docker。RKE1 利用 Docker 来部署和管理控制平面组件以及 Kubernetes 的容器运行时间。RKE2 将控制平面组件作为静态 pod 启动,由 kubelet 管理。嵌入的容器运行时是 containerd。token替换下面的 ,server 为rke2 server节点ip或者可以解析到的主机名。1.rke2是Rancher的下一代k8s发行版,一、什么是rke2?原创 2023-08-22 10:07:22 · 1675 阅读 · 0 评论 -
Rancher使用cert-manager安装报错解决
【代码】Rancher使用cert-manager安装报错解决。原创 2023-08-21 16:35:57 · 1377 阅读 · 0 评论 -
Rancher-RKE-install 部署k8s集群
请注意:一定要检查你ssh的用户是否具备使用docker的权限,而且一定要启动docker.SSH第一个是集群配置的path位置,如果没有指定每个主机的私钥路径或者私钥的内容,则默认使用集群的配置.,表示成功部署集群,可以开始使用集群。在创建 Kubernetes 集群的过程中,会创建一个。5.根据当前目录的上下文中的cluster.yaml 安装rke集群。你运行的主机需要具备ssh免密登录其他主机的能力。1.下载Rancher-Rke的二进制包-下面是项目的地址。1.CNCF认证的k8s安装程序。原创 2023-08-18 17:31:52 · 1516 阅读 · 1 评论 -
k8s cluster ip VS node port 网络原理
nat后: srt: 2.2.2.30 (node ip ) dest: 1.1.1.1:443 (真实的pod ip + 端口)nat前: srt: 1.1.1.30 (client ip ) dest: 2.2.2.30:38888 (node ip + 端口)nat前: srt: 1.1.1.1:443 (真实的pod ip ) dest: 2.2.2.30 (node ip )原创 2023-10-23 10:59:11 · 525 阅读 · 0 评论 -
Docker 构建Python镜像时,pip使用国内地址的dockerfile模版
这个办法同样适用于:物理机,这个地址是阿里云的。因国内无法访问pip的配置文件中的仓库地址。原创 2023-10-14 18:08:25 · 1774 阅读 · 0 评论 -
Gitops-万字保姆级教程-小白也可以轻松学会! (Part 3)-关于git你需要知道的事情
这是Devops系列文章的第三篇,从git命令学习。原创 2024-03-24 22:51:02 · 879 阅读 · 0 评论 -
4句话学习-k8s节点是如何注册到k8s集群并且kubelet拿到k8s证书的
三、看到有人拿着Bootstrap token的CSR来签名请求了,CSRAppprovingController会自动签名并且生成证书。服务器端会保存你的证书,让你来下载。二、ControllerManager有一个组件叫CSRAppprovingController,专门来Watch有没有人来使用我这个api.一、kubelet拿着CSR(签名请求)使用的是Bootstrap token。四、Kubelet会下载证书并且使用这个证书来访问Api-Server.原创 2024-06-06 22:34:15 · 583 阅读 · 0 评论 -
5分钟了解,Kustomize是什么工具?
那么就是说第一个deployment.yaml,其实就是定义的模版文件,但是一个非常完整的文件。另外两个development以及production,其实就是覆盖模版文件上的一些参数,来实现不同环境部署不同的配置文件。原创 2024-07-22 21:59:37 · 591 阅读 · 0 评论 -
几句话搞懂什么是docker image?它主要解决什么问题?他用什么技术实现的?
1、他使用联合文件系统基于层级概念保证docker image的不可变性。如出现读那就正常读,如有修改会新增一层复制底层中的文件进行修改,而不是直接修改原文件的内容。当你本地开发一个应用想测试,如果时虚拟机环境那你会重复做很多工作且还会出现兼容问题。2、docker image 因为可以推送到公网且镜像非常小以及本身都是标准化的产物,那么你可以在任何地方部署和移植。4、符合OCI标准的Runtime都可以运行docker image.1、除去LinuxOS内核资源的用户空间的一组资源集合的快照。原创 2024-06-09 10:38:24 · 558 阅读 · 1 评论 -
TOP10-k8s-安全措施
这包括 etcd 的客户端到服务器的通信(例如,API 服务器到 etcd 的通信),以及 etcd 集群内部的服务器到服务器的通信。:如果可能的话,你应该考虑使用外部的密钥管理系统,如 HashiCorp Vault 或 AWS KMS,来存储你的敏感数据。etcd保存着整个k8s集群的几乎所有资源信息,攻击者可以访问etcd那么可以说几乎拥有无限制对于k8s集群的访问权限。:你应该启用 etcd 的审计日志功能,以记录所有的请求。这可以帮助你检测任何未授权的访问尝试,以及跟踪问题的来源。原创 2024-06-02 23:06:19 · 931 阅读 · 0 评论 -
浅谈应用发布的4种方式
1、一套生产环境,例如10个副本,将其中3个副本部署为新版本。一套环境中将一小部分应用副本设置为“金丝雀”,对外提供新版本服务,这一小部分流量可以针对特定的用户,位置,终端类型进行区分。两套一摸一样的生产环境,一套对外提供业务服务(蓝),一套准生产服务(绿)。1、因为环境一致经过充分测试,回退率最低。1、业务连续性强,有问题只会小部分用户。1、即将现有生产环境的APP版本直接一刀切到新版本。1、无法限制为特定的用户提供服务。2、无法限制为特定的用户提供服务。1、可以针对小部分用户进行测试。原创 2024-05-31 13:12:15 · 779 阅读 · 0 评论 -
Linux文件系统讲解!
usr/bin 是二进制文件的主要存放位置,不是操作系统本身的一部分,大部分用户的程序放在这里,比如git等,有趣的人 /usr 不是代表User用户而是Unix System Resources。/usr/lib 包含/usr 二进制文件的库,这些库对于早期系统初始化并不重要。/usr/local/bin 保存由管理员安装的可执行文件,通常是从源码构建他们后放入的。/lib包含/bin和/sbin二进制文件正常运行所必需的共享库文件。在安装/usr之前,需要在引导过程的早起访问这些库,原创 2024-06-14 22:11:08 · 901 阅读 · 0 评论 -
几句话理解Kubetnetes中的Service资源的几种类型
master-host = mysql-cluster-0.mysql-cluster.default.svc.cluster.local 直接告诉Slave节点主节点在哪里,并且后端程序的配置文件也可以直接写mysql-cluster-0.mysql-cluster.default.svc.cluster.local告诉后端程序Mysql主的地址。2、且因为副本机制的存在,创建多副本的Pod以及实际需要访问服务的Pod不一定在同一个worker节点上,需要一个LB的机制。原创 2024-06-12 12:26:54 · 808 阅读 · 0 评论 -
了解Kubernetes-RKE2的PKI以及证书存放位置
默认位置:/etc/kubenetes/pki ,因为我是搭建的RKE2发行版的k8s,故我的PKI在这里:/var/lib/rancher/rke2/server/tls。3、但同理Api-server相对于Etcd和Kubelet那么,Etcd、Kubelet为Server端,则Api-server有一份对应的Client证书。可以方便理解为当你的集群有Server,Client架构,那么为了安全加密之间的通信,则需要使用证书进行交互,那么利用PKI架构可以安全加密组件之间的通信。简称:证书基础设施。原创 2024-06-06 22:21:54 · 1047 阅读 · 0 评论 -
纯理论容器实现的原理
容器本质上就是主机上的一个进程。这个进程拥有自己的用户空间并且和主机共享内核空间。容器内的进程可以通过系统调用与内核进行交互,使用内核提供的各种功能和资源。简单的说就是将一个目录赋予一个进程作为这个进程运行的根目录的技术。六、容器是怎么挂载和使用主机的Dir的?当容器启动时,会使用overlay2存储驱动将容器的LowerDir、UpperDir、WorkDir、MergedDir镜像合并,组成容器的Rootfs(也就是容器的用户空间),并且在 Docker 中,当你使用-v或--volume。原创 2024-06-10 13:53:15 · 806 阅读 · 0 评论 -
4句话明白虚拟机和容器的区别
1、容器本质上是被namespace以及cgroup隔离和限制资源的进程。在容器之间的隔离相比虚拟机OS之前的安全性较差。2、扩展APP副本时到重复资源浪费(GustOS-libs)3、当你开发在本地但要移植到云端,就会出现各种兼容性问题。4、很难集成到DevOps管道中,因为CD阶段没有标准。服务器-HostOS-虚拟化层-GustOS-libs-App。服务器-HostOS-RunTime-App。原创 2024-06-09 10:13:16 · 583 阅读 · 0 评论 -
几句话明白什么是Kubernetes Operator?
答案肯定是不知道的,这个时候就需要人工干预,这个人就是操作员,也就是Operator。1、要实现软件Operator层面,Kubernetes本身的api是不能够完成这类任务的,因为Kubernetes不可能存储所有应用的控制生命周期的知识。3、那么Kubernetes设计之初就说我们是一个自动化、减少人工干预的、自动修复平台,是不是优点问题。1、有状态应用,比如数据库、复杂的集群系统(ELK),本身有选举、同步等机制的应用程序。3、这些被单独定义的CRD就是Operator的具体控制生命周期的“知识”。原创 2024-06-11 23:17:37 · 602 阅读 · 0 评论