 Kubernetes开源书 -  周立com/kubernetes/minikube 如何在Windows 10上运⾏Docker和Kubernetes?:http://dockone.io/article/8136 启⽤Kubernetes Dashboard 执⾏: kubectl proxy 02-安装单机版Kubernetes 8 访问: http://localhost:8001/api/v1/namespaces/kube-syste e上的Pod(通过apiserver或本地配置⽂件)和: 装载Pod所需的Volume。 下载Pod的secret。 通过Docker(或实验时使⽤rkt)运⾏Pod的容器。 定期执⾏任何被请求容器的活动探针(liveness probes)。 在必要时创建mirror pod ,从⽽将pod的状态报告回系统的其余部分。 将节点的状态报告回系统的其余部分。 kube-proxy kube-proxy ,以及⼀些关于对象的基本信息(如 名称)。当您使⽤Kubernetes API创建对象(直接或通过 kubectl )时,该API请求必须在请求体中包含该信息(以 JSON格式)。 最常⻅的,可在⼀个.yaml⽂件中向kubectl提供信息。 在进⾏API请求时, kubectl 会将信息转换为 JSON。 如下是⼀个示例 .yaml ⽂件,显示Kubernetes Deployment所需的字段和对象spec:0 码力 | 135 页 | 21.02 MB | 1 年前3 Kubernetes开源书 -  周立com/kubernetes/minikube 如何在Windows 10上运⾏Docker和Kubernetes?:http://dockone.io/article/8136 启⽤Kubernetes Dashboard 执⾏: kubectl proxy 02-安装单机版Kubernetes 8 访问: http://localhost:8001/api/v1/namespaces/kube-syste e上的Pod(通过apiserver或本地配置⽂件)和: 装载Pod所需的Volume。 下载Pod的secret。 通过Docker(或实验时使⽤rkt)运⾏Pod的容器。 定期执⾏任何被请求容器的活动探针(liveness probes)。 在必要时创建mirror pod ,从⽽将pod的状态报告回系统的其余部分。 将节点的状态报告回系统的其余部分。 kube-proxy kube-proxy ,以及⼀些关于对象的基本信息(如 名称)。当您使⽤Kubernetes API创建对象(直接或通过 kubectl )时,该API请求必须在请求体中包含该信息(以 JSON格式)。 最常⻅的,可在⼀个.yaml⽂件中向kubectl提供信息。 在进⾏API请求时, kubectl 会将信息转换为 JSON。 如下是⼀个示例 .yaml ⽂件,显示Kubernetes Deployment所需的字段和对象spec:0 码力 | 135 页 | 21.02 MB | 1 年前3
 ⾸云容器产品Kubernetes操作指南24 请求类型 配置说明 HTTP/HTTPS 即向容器发送⼀个 HTTPget 请求,⽀持的参数包括: 路径:访问 HTTP server 的路径。 端⼝:容器暴露的访问端⼝或端⼝名,端⼝号必须介于 1~65535。 HTTP 头:即 HTTPHeaders,HTTP 请求中⾃定义的请求头,HTTP 允许重复的 header。 ⽀持键值对的配置⽅式。 35 请求类型 配置说明 HTTP/HTTPS 即向容器发送⼀个 HTTPget 请求,⽀持的参数包括: 路径:访问 HTTP server 的路径。 端⼝:容器暴露的访问端⼝或端⼝名,端⼝号必须介于 1~65535。 HTTP 头:即 HTTPHeaders,HTTP 请求中⾃定义的请求头,HTTP 允许重复的 header。 ⽀持键值对的配置⽅式。 NodePort:通过每个 Node 上的 IP 和静态端⼝(NodePort)暴露服务。NodePort 服务会路 由到 ClusterIP 服务,这个 ClusterIP 服务会⾃动创建。通过请求 ⾸云容器产品Kubernetes操作指南24 请求类型 配置说明 HTTP/HTTPS 即向容器发送⼀个 HTTPget 请求,⽀持的参数包括: 路径:访问 HTTP server 的路径。 端⼝:容器暴露的访问端⼝或端⼝名,端⼝号必须介于 1~65535。 HTTP 头:即 HTTPHeaders,HTTP 请求中⾃定义的请求头,HTTP 允许重复的 header。 ⽀持键值对的配置⽅式。 35 请求类型 配置说明 HTTP/HTTPS 即向容器发送⼀个 HTTPget 请求,⽀持的参数包括: 路径:访问 HTTP server 的路径。 端⼝:容器暴露的访问端⼝或端⼝名,端⼝号必须介于 1~65535。 HTTP 头:即 HTTPHeaders,HTTP 请求中⾃定义的请求头,HTTP 允许重复的 header。 ⽀持键值对的配置⽅式。 NodePort:通过每个 Node 上的 IP 和静态端⼝(NodePort)暴露服务。NodePort 服务会路 由到 ClusterIP 服务,这个 ClusterIP 服务会⾃动创建。通过请求- : - ,可以从集群的外部访问⼀个 NodePort 服务。 关联:选择服务要绑定的后端对象o。若不进⾏关联部署,则不会创建相关的 Endpoints 0 码力 | 94 页 | 9.98 MB | 1 年前3
 第29 期| 2023 年9 月- 技术雷达采用更加细致入微的方法来衡量软件的创造过程,但这仍 然不够。幸运的是,业界已经不再使用代码行数作为产出衡量标准。然而,衡量框架 SPACE 中 A(Activity,活 动)的替代方法,例如拉取请求的数量或已解决的问题的数量,仍然不足以成为衡量生产力的良好指标。相反, 行业已经开始关注“工程效能”:我们不应该衡量生产力,而应该衡量我们知道对流程有贡献或有损害的事物。 我们不应该专注于个体的 Cilium 52. 云服务的碳足迹 53. 容器结构测试 54. Devbox 55. DX DevEx 360 56. GitHub Copilot 57. Insomnia 58. IntelliJ HTTP 客户端插件 59. KEDA 60. Kubeconform 61. mob 62. MobSF 63. Mocks Server 64. Prisma 运行时防护 65. Terratest 66 软件供应链的复杂性是一个重大风险,我们已经在一些文章中进行过讨论,例如 SBOM 与 SLSA。对于大多数 团队来说,致命弱点仍然是依赖项中存在漏洞,通常是来自于多层的间接依赖项。Dependabot 等工具可以通 过创建拉取请求(PR)来更新依赖项。不过,团队仍然需要制定工程纪律,以确保及时处理这些 PR,尤其是 对长时间不活跃的应用程序或服务提交的 PR。 如果系统具有广泛的测试覆盖范围——不仅有完善的单元测试,还包括有功能和性能测试,并且构建流水线必0 码力 | 43 页 | 2.76 MB | 1 年前3 第29 期| 2023 年9 月- 技术雷达采用更加细致入微的方法来衡量软件的创造过程,但这仍 然不够。幸运的是,业界已经不再使用代码行数作为产出衡量标准。然而,衡量框架 SPACE 中 A(Activity,活 动)的替代方法,例如拉取请求的数量或已解决的问题的数量,仍然不足以成为衡量生产力的良好指标。相反, 行业已经开始关注“工程效能”:我们不应该衡量生产力,而应该衡量我们知道对流程有贡献或有损害的事物。 我们不应该专注于个体的 Cilium 52. 云服务的碳足迹 53. 容器结构测试 54. Devbox 55. DX DevEx 360 56. GitHub Copilot 57. Insomnia 58. IntelliJ HTTP 客户端插件 59. KEDA 60. Kubeconform 61. mob 62. MobSF 63. Mocks Server 64. Prisma 运行时防护 65. Terratest 66 软件供应链的复杂性是一个重大风险,我们已经在一些文章中进行过讨论,例如 SBOM 与 SLSA。对于大多数 团队来说,致命弱点仍然是依赖项中存在漏洞,通常是来自于多层的间接依赖项。Dependabot 等工具可以通 过创建拉取请求(PR)来更新依赖项。不过,团队仍然需要制定工程纪律,以确保及时处理这些 PR,尤其是 对长时间不活跃的应用程序或服务提交的 PR。 如果系统具有广泛的测试覆盖范围——不仅有完善的单元测试,还包括有功能和性能测试,并且构建流水线必0 码力 | 43 页 | 2.76 MB | 1 年前3
 k8s操作手册 2.330000-32768 LoadBalancer k8s创建NodePort与Cluster-ip;云服务商云上的负载均衡器 去监测此k8s集群当发现有创建LoadBalancer时,就自动添加 相应的监听器(将用户的请求流量转发到pod所处node结点 上的目标service Port或node port,目标node上的ipvs规则是 直接将此node port/servce port转发到此node上的pod里) ★容器探测其他配置: ★HTTP探测 livenessProbe: #pod存活性探测 h�pGet: #使用h�p path: /xx/cxxx/healthz #请求的文件 port: 80 scheme: HTTP #协议,可为HTTP, HTTPS ★执行shell命令进行探测 名称 ★LimitRange LimitRange资源在每个命名空间中为每个容器/pod指定最小及最大计算资源/内 存使用量限制,任何违反LimitRange定义的资源使用最大用量的请求都将被直接 拒绝 LimitRange对pod和容器的资源限制为cpu和内存使用量 LimitRange对PVC的资源限制为存储空间的使用量 资源限额只对新创建的资源生效,对于已经存在的对象不产生任何限制0 码力 | 126 页 | 4.33 MB | 1 年前3 k8s操作手册 2.330000-32768 LoadBalancer k8s创建NodePort与Cluster-ip;云服务商云上的负载均衡器 去监测此k8s集群当发现有创建LoadBalancer时,就自动添加 相应的监听器(将用户的请求流量转发到pod所处node结点 上的目标service Port或node port,目标node上的ipvs规则是 直接将此node port/servce port转发到此node上的pod里) ★容器探测其他配置: ★HTTP探测 livenessProbe: #pod存活性探测 h�pGet: #使用h�p path: /xx/cxxx/healthz #请求的文件 port: 80 scheme: HTTP #协议,可为HTTP, HTTPS ★执行shell命令进行探测 名称 ★LimitRange LimitRange资源在每个命名空间中为每个容器/pod指定最小及最大计算资源/内 存使用量限制,任何违反LimitRange定义的资源使用最大用量的请求都将被直接 拒绝 LimitRange对pod和容器的资源限制为cpu和内存使用量 LimitRange对PVC的资源限制为存储空间的使用量 资源限额只对新创建的资源生效,对于已经存在的对象不产生任何限制0 码力 | 126 页 | 4.33 MB | 1 年前3
 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable 5分钟定位 10分钟恢复 故障应急 1-5-10原则 安全变更 4. 读取灰度规则 配置中心 3. 配置灰度规则 http-header: user-id % 100 == 20 • 两种灰度规则 • 按流量百分比路由 • 按请求特征路由:如http header, 方法参数等 • 打通微服务网关 提供者 1 消费者 提供者 2 version=gray 2. 注册环境标签 安全生产: 金丝雀发布 http入口应用A 应用B v1 应用C v1 基线环境 开发环境1 应用B v1.1 灰度流量 RPC 应用D v1 应用D v1.1 正常流量 RPC http请求 应用C v1.2 应用D v1.2 http请求 开发环境2 • 研发人员每个人独立部署一套环境 • 基于全链路流量控制进行逻辑隔离 • 入口请求打上标识,标识绑定应用 分组,形成规则推送到配置中心0 码力 | 27 页 | 7.10 MB | 1 年前3 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable 5分钟定位 10分钟恢复 故障应急 1-5-10原则 安全变更 4. 读取灰度规则 配置中心 3. 配置灰度规则 http-header: user-id % 100 == 20 • 两种灰度规则 • 按流量百分比路由 • 按请求特征路由:如http header, 方法参数等 • 打通微服务网关 提供者 1 消费者 提供者 2 version=gray 2. 注册环境标签 安全生产: 金丝雀发布 http入口应用A 应用B v1 应用C v1 基线环境 开发环境1 应用B v1.1 灰度流量 RPC 应用D v1 应用D v1.1 正常流量 RPC http请求 应用C v1.2 应用D v1.2 http请求 开发环境2 • 研发人员每个人独立部署一套环境 • 基于全链路流量控制进行逻辑隔离 • 入口请求打上标识,标识绑定应用 分组,形成规则推送到配置中心0 码力 | 27 页 | 7.10 MB | 1 年前3
 石墨文档Go在K8S上微服务的实践-彭友顺• 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 • 展示各种组件gRPC、HTTP、MySQL、Redis、Kafka调试信息 • 六元组(配置名、请求URL、请求参数、响应数据、耗时时间、执行行号) • 响应数据结构是否正确 • 响应是否有错误 微服务的开发阶段 • 遵循Fail Fast理念,核心错误尽早panic 微服务的启动阶段 启动参数 加载配置 探活 滚动更新 软链接:filepath.EvalSymlinks(fp.path) 微服务的启动阶段 启动参数 加载配置 探活 滚动更新 • HTTP: server.Use(healthcheck.Default()) • gRPC: healthpb.RegisterHealthServer(newServer, health.NewServer()) -grpc_health_probe --addr=127.0.0.1:9001 httpGet: path: / port: 9002 scheme: HTTP httpHeaders: -name:X-Health-Check value: 1 微服务的调用阶段 Resolver Balancer Auth Context0 码力 | 41 页 | 3.20 MB | 1 年前3 石墨文档Go在K8S上微服务的实践-彭友顺• 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 • 展示各种组件gRPC、HTTP、MySQL、Redis、Kafka调试信息 • 六元组(配置名、请求URL、请求参数、响应数据、耗时时间、执行行号) • 响应数据结构是否正确 • 响应是否有错误 微服务的开发阶段 • 遵循Fail Fast理念,核心错误尽早panic 微服务的启动阶段 启动参数 加载配置 探活 滚动更新 软链接:filepath.EvalSymlinks(fp.path) 微服务的启动阶段 启动参数 加载配置 探活 滚动更新 • HTTP: server.Use(healthcheck.Default()) • gRPC: healthpb.RegisterHealthServer(newServer, health.NewServer()) -grpc_health_probe --addr=127.0.0.1:9001 httpGet: path: / port: 9002 scheme: HTTP httpHeaders: -name:X-Health-Check value: 1 微服务的调用阶段 Resolver Balancer Auth Context0 码力 | 41 页 | 3.20 MB | 1 年前3
 第1930期:Kubernetes基础介绍令都是发给它,它负责执行具体的动作。它很重要,如果它不可用,那么我们所有的控制命令都会失效。 Master节点上运行一组关键进程: API Server API服务器(kube-apiserver):提供HTTP Rest接口的关键服务,是k8s集群里所有资源的增删查改等操 作的唯一入口,也是集群控制的入口进程。并提供认证、授权、访问控制、API注册和发现等机制 Controller Manager控制 ndPoint列表加入到8080的 转发列表中,服务端就可以通过负载均衡器的对外IP+服务端口号访问此服务,而客户端的请求最后会转发到哪个Pod, 是由负载均衡器的算法所决定。 运行在Node节点上的kube-proxy进程其实就是一个智能的负载均衡器,他负责把Service的请求转发到后端的某个 Pod实例上,并在内部实现服务的负载均衡与会话保持机制。 但是Service不是共用一个负载均衡器 od Request为0.4,当前为 0.2,那么就是50%。比如如果所有的超过了80% ,那么就自动创建Pod。高峰过去之后自动减少Pod 2. 应用程序自定义的度量指标,比如服务每秒内的相应的请求数(TPS或QPS). 24 www.h3c.com Confidential 秘密 24 24 K8s基本概念和术语介绍(DaemonSet) DaemonSet(后台支撑服务集): 长期0 码力 | 49 页 | 4.11 MB | 1 年前3 第1930期:Kubernetes基础介绍令都是发给它,它负责执行具体的动作。它很重要,如果它不可用,那么我们所有的控制命令都会失效。 Master节点上运行一组关键进程: API Server API服务器(kube-apiserver):提供HTTP Rest接口的关键服务,是k8s集群里所有资源的增删查改等操 作的唯一入口,也是集群控制的入口进程。并提供认证、授权、访问控制、API注册和发现等机制 Controller Manager控制 ndPoint列表加入到8080的 转发列表中,服务端就可以通过负载均衡器的对外IP+服务端口号访问此服务,而客户端的请求最后会转发到哪个Pod, 是由负载均衡器的算法所决定。 运行在Node节点上的kube-proxy进程其实就是一个智能的负载均衡器,他负责把Service的请求转发到后端的某个 Pod实例上,并在内部实现服务的负载均衡与会话保持机制。 但是Service不是共用一个负载均衡器 od Request为0.4,当前为 0.2,那么就是50%。比如如果所有的超过了80% ,那么就自动创建Pod。高峰过去之后自动减少Pod 2. 应用程序自定义的度量指标,比如服务每秒内的相应的请求数(TPS或QPS). 24 www.h3c.com Confidential 秘密 24 24 K8s基本概念和术语介绍(DaemonSet) DaemonSet(后台支撑服务集): 长期0 码力 | 49 页 | 4.11 MB | 1 年前3
 腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf local-in 前移到nf pre-routing • skb的路由指针是NULL • 处理分片 • 出报文 • 本来的逻辑: • Nf local out -> ip_output 同时发了2个UDP请求,分别请求A和AAAA。源端口是cport。 • Iptables SNAT 为请求1分配了lport=cport • 很快Iptables SNAT 为请求2分配了同样的lport • Conntrack Post routing 函数中,将请求1的lport插入conntrack,成功! • Conntrack Post routing 函数中,将请求2的lport插0 码力 | 27 页 | 1.19 MB | 9 月前3 腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf local-in 前移到nf pre-routing • skb的路由指针是NULL • 处理分片 • 出报文 • 本来的逻辑: • Nf local out -> ip_output 同时发了2个UDP请求,分别请求A和AAAA。源端口是cport。 • Iptables SNAT 为请求1分配了lport=cport • 很快Iptables SNAT 为请求2分配了同样的lport • Conntrack Post routing 函数中,将请求1的lport插入conntrack,成功! • Conntrack Post routing 函数中,将请求2的lport插0 码力 | 27 页 | 1.19 MB | 9 月前3
 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验(coming soon) https://openkruise.iok8s 规模及性能优化实践性能优化 RT/QPS 资源使用率 链路RT/QPS 服务异常 队列长度 gRPC监控 长连接分布 请求分布 限流 Authorization Authenticatio n 序列化 压缩 版本转换 Admission Cache Storage Filter Chain API 存储 监控&大盘• APIServer & ETCD & Webhook Load balance ETCD Webhook Client Kubelets APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化0 码力 | 33 页 | 8.67 MB | 6 月前3 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验(coming soon) https://openkruise.iok8s 规模及性能优化实践性能优化 RT/QPS 资源使用率 链路RT/QPS 服务异常 队列长度 gRPC监控 长连接分布 请求分布 限流 Authorization Authenticatio n 序列化 压缩 版本转换 Admission Cache Storage Filter Chain API 存储 监控&大盘• APIServer & ETCD & Webhook Load balance ETCD Webhook Client Kubelets APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化0 码力 | 33 页 | 8.67 MB | 6 月前3
 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API Server 中数据的一份快照,并记 录 ResourceVersion0 码力 | 21 页 | 3.06 MB | 9 月前3 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API Server 中数据的一份快照,并记 录 ResourceVersion0 码力 | 21 页 | 3.06 MB | 9 月前3
共 33 条
- 1
- 2
- 3
- 4














