官方文档: Upgrade etcd from 3.4 to 3.5
在一般情况下,从 etcd 3.4 升级到 3.5 可以是一个零停机时间的滚动升级。
注意事项:
- 一个接一个地停止 etcd v3.4 进程,用 etcd v3.5 进程替换它们。
- 在运行所有 v3.5 进程后,v3.5 的新功能对集群可用。
生如蝼蚁当立鸿鹄之志, 命如薄纸应有不屈之心!
官方文档: Upgrade etcd from 3.4 to 3.5
在一般情况下,从 etcd 3.4 升级到 3.5 可以是一个零停机时间的滚动升级。
注意事项:
ETCD 是用于共享配置和服务发现的分布式,一致性的 KV 存储系统。ETCD 是CoreOS 公司发起的一个开源项目,授权协议为 Apache。
ETCD 是 k8s 集群极为重要的一块服务,存储了集群所有的数据信息。同理,如果发生灾难或者 etcd 的数据丢失,都会影响集群数据的恢复。
查看 etcd 集群状态
1 | export ETCDCTL_API=3 |
官方原始文件使用的是 deployment,replicate 为 1,这样将会在某一台节点上启动对应的 nginx-ingress-controller pod。外部流量访问至该节点,由该节点负载分担至内部的service。考虑到单点故障的问题,改为 DaemonSet,配合亲和性部署在指定节点上启动 nginx-ingress-controller pod,确保有多个节点启动nginx-ingress-controller pod,生产环境中建议 ingress 节点打上污点不允许业务pod进行调度,以避免业务应用与 Ingress 服务发生资源争抢。后续将这些节点加入到外部硬件负载均衡组实现高可用性。
参考文章: Kubernetes-Ingress
more >>参考文章: 如何丝滑般将 Kubernetes 容器运行时从 Docker 切换成 Containerd
当前系统的环境如下
1 | # kubectl get nodes -owide |
在使用 Docker 的时候一般情况下我们都会直接使用 docker build 来构建镜像,切换到 Containerd 的时候,接下来我们就来介绍下在 Containerd 容器运行时下面镜像构建的主要工具和方案。
在 Kubernetes 集群中,部分 CI/CD 流水线业务可能需要使用 Docker 来提供镜像打包服务。可通过宿主机的 Docker 实现,将 Docker 的 UNIX Socket(/var/run/docker.sock) 通过 hostPath 挂载到 CI/CD 的业务 Pod 中,之后在容器里通过 UNIX Socket 来调用宿主机上的 Docker 进行构建,这个就是之前我们使用较多的 Docker outside of Docker 方案。
more >>参考文章:
KubeEdge是一个开源系统,将原生的容器化的业务流程和设备管理功能扩展到边缘节点。KubeEdge是基于Kubernetes构建的,并为云,边缘之间的网络通信,应用程序部署以及元数据同步提供核心基础架构支持。同时KubeEdge还支持MQTT,并允许开发人员编写自定义逻辑并在Edge上启用一定资源的设备进行通信。
more >>参考文档
Kubernetes 中使用了大量的证书,本文不会试图覆盖到所有可能使用到的证书,但会讨论到主要的证书。理解了这些证书的使用方法和原理后,也能很快理解其他可能遇到的证书文件。二进制 kubernetes 中各个组件证书的默认过期时间为: 根证书 ca.pem(10年),其他的客户端证书为 1年
more >>K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s 有以下增强功能:
官方文档: Documentation
现代应用程序通常被构建为微服务的分布式集合,每个微服务集合执行一些离散的业务功能。服务网格是一个专用的基础设施层,您可以将其添加到您的应用程序中。它允许您透明地添加可观察性、流量管理和安全性等功能,而无需将它们添加到您自己的代码中。术语“服务网格”描述了您用于实现此模式的软件类型,以及您使用该软件时创建的安全或网络域。
随着分布式服务的部署(例如在基于 Kubernetes 的系统中)的规模和复杂性的增长,它可能变得更难理解和管理。它的要求可以包括发现、负载平衡、故障恢复、度量和监控。服务网格还经常解决更复杂的操作要求,例如 A/B 测试、金丝雀部署、速率限制、访问控制、加密和端到端身份验证。
参考文档:
基于角色的访问控制(Role-Based Access Control, 即 “RBAC”)使用 rbac.authorization.k8s.io API Group实现授权决策,允许管理员通过Kubernetes API动态配置策略。
基于 RBAC 配置权限,包括操作(get、create、list、delete、update、edit、watch、exec)资源:
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true