深入Argo - Application resources

在安装和注册集群完成后,就需要引入第一个概念 “Application”(如何管理所有我的应用程序?) 什么是 Application 什么是 ArgoCD “Application”? 对于 ArgoCD “Application”的快速解释:它是托管 ArgoCD 部署的 Kubernetes 集群 CRD 包含了应用程序的所有设置,如: 要部署到哪个集群? 与哪个 Git 存储库进行同步? 其他部署设置 应用程序的 YAML 包含了部署您的存储库资源所需的所有信息,充当了在 ArgoCD 中管理应用程序的关键控制点。 Reference ​ [1] docs/operator-manual/argocd-cm.yaml ​ [2] Getting started with multi-cluster K8S deployments using Argo CD ​ [3] https://medium.com/notive/managing-argocd-application-resources-1b2b4742ab90

 ·  · 

初识Argo cd - 注册/删除k8s集群

登录argo cd bash 1 argocd login argocd_server:argocd_port_here 执行后输入admin/sercert bash 1 2 3 4 5 6 $ argocd login 10.0.0.5:30908 WARNING: server certificate had error: x509: cannot validate certificate for 10.0.0.5 because it doesn't contain any IP SANs. Proceed insecurely (y/n)? y Username: admin Password: 'admin:login' logged in successfully Context '10.0.0.5:30908' updated argocd cli 登录后的文件保存在 ~/.argocd/config 中 注册一个新集群 argocd 通过 kubectl 来获取集群的信息,所以 argocd 的主机上必须有 kubeconfig 文件 Note: KUBECONFIG 文件地址必须为实际路径,比如 ~/ 这种方式不可以...

 ·  · 

nginx中的多路分支 - nginx map

引言 在 NGINX 中常用一种 “比较变量” 的手法,在编程语言中称为 “多路分支” (Case statement),也就是 nginx map,需要注意的一点是,太低版本 NGINX MAP 中只能使用单变量 Before version 0.9.0 only a single variable could be specified in the first parameter. [1] 下面将了解下 nginx map 的具体使用方式 nginx map使用 Nginx 配置主要是声明性的,这同样应用于 MAP 指令,NGINX MAP 是定义在 http{} 级别,最大的特点是仅在引用时进行处理, 如果请求未触及使用 NGINX MAP 变量的配置部分,则不会执行该 map 变量查找。换句话来理解,当在上下文 server, Location, if 等中使用结果变量时(指定的不是计算结果,而是在需要时计算该结果的公式),才会被使用,在 NGINX 需要使用该变量之前,NGINX MAP 不会给请求增加任何开销。 NGINX MAP 用于根据另一个变量的值创建一个变量,如下所示: conf map $variable_to_check $variable_to_set { "check_if_variable_matches_me" "variable_matches_checked_value"; default "no_match"; } 在上面的例子中, 变量 $variable_to_set 的被设置的结果为:如果 $variable_to_check 值为 “check_if_variable_matches_me”, 那么 $variable_to_set 将被设置为值 “variable_matches_checked_value” , 否则将设置为 “no_match”。...

 ·  · 

GKE标准集群价格选择示例

GKE标准机器通常费用组成为 “集群管理费” + 标准GCE主机费用,以香港为例 主机规格 CPU (CORE/Mon) MEM (GB/Mon) E2( E2Balanced: N1, N2):费用优化 $23.77 $2.99 N1 (旧型号的Intel Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake) $38.45 $4.55 N2 CPU $31.9 $4.01 N2D CPU $27.75 $3.48 选择核心的标准(强要求) intel 2的公差,例如1, 2, 4, 6, 8, 10 AMD 2, 4, 8, 16, 32 只有 “费用优化” (cose-optimized) 的可以自定义配置,计算优化,内存优化等都是固定配置 新加坡的价格是香港价格的 “90%”

 ·  · 

K8S Admission Webhook官方扩展版 - ValidatingAdmissionPolicy

相关阅读:深入理解Kubernetes 4A - Admission Control源码解析 准入 (Admission) 是 Kubernetes 提供 4A 安全认证中的一个步骤,在以前版本中 (1,26-),官方提供了 webhook 功能,使用户可以自行的定义 Kubernetes 资源准入规则,但这些是有成本的,需要自行开发 webhook,下图是 Kubernetes准入控制流程。 图:Kubernetes API 请求的请求处理步骤图 Source:https://kubernetes.io/blog/2019/03/21/a-guide-to-kubernetes-admission-controllers/ 在 Kubernetes 1.26 时 引入了 ValidatingAdmissionPolicy alpha 版,这个功能等于将 Admission Webhook controller 作为了一个官方扩展版,通过资源进行自行扩展,通过这种方式带来下面优势: 减少了准入请求延迟,提高可靠性和可用性 能够在不影响可用性的情况下失败关闭 避免 webhooks 的操作负担 ValidatingAdmissionPolicy 说明 验证准入策略提供一种声明式的、进程内的替代方案来验证准入 Webhook。 验证准入策略使用通用表达语言 (Common Expression Language,CEL) 来声明策略的验证规则。 验证准入策略是高度可配置的,使配置策略的作者能够根据集群管理员的需要, 定义可以参数化并限定到资源的策略 下面是一个 ValidatingAdmissionPolicy 的示例,配置 Deployment 必须拥有的副本数的限制 yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 apiVersion: admissionregistration....

 ·  ·