update at 2024-04-09 16:35:40

pull/158/head
roc 2024-04-09 16:35:40 +08:00
parent 047ec0fa74
commit 671ea4dcc4
5 changed files with 422 additions and 446 deletions

View File

@ -73,7 +73,7 @@ kubectl -n kube-system edit configmap coredns
参考 k8s 官方文档 [Using NodeLocal DNSCache in Kubernetes clusters](https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/) 参考 k8s 官方文档 [Using NodeLocal DNSCache in Kubernetes clusters](https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/)
如果是使用 TKE 并且 kube-proxy 转发模式为 iptables可以直接在扩展组件中安装此扩展组件扩展组件说明请参考 [TKE 官方文档](https://cloud.tencent.com/document/product/457/49423);如果使用的 ipvs 模式,可以参考 [TKE IPVS 模式安装 localdns](../../tencent/networking/install-localdns-with-ipvs.md)。 如果是使用 TKE 并且 kube-proxy 转发模式为 iptables可以直接在扩展组件中安装此扩展组件扩展组件说明请参考 [TKE 官方文档](https://cloud.tencent.com/document/product/457/49423);如果使用的 ipvs 模式,可以参考 [IPVS 模式安装 NodeLocalDNS](https://imroc.cc/tke/networking/install-localdns-with-ipvs)。
## 使用 DNSAutoscaler ## 使用 DNSAutoscaler

View File

@ -30,5 +30,5 @@
1. 业务层面自动重连,避免连接 "固化" 到某个后端 Pod 上。比如周期性定时重连,或者一个连接中处理的请求数达到阈值后自动重连。 1. 业务层面自动重连,避免连接 "固化" 到某个后端 Pod 上。比如周期性定时重连,或者一个连接中处理的请求数达到阈值后自动重连。
2. 不直接请求后端,通过七层代理访问。比如 gRPC 协议,可以 [使用 nginx ingress 转发 gRPC](https://kubernetes.github.io/ingress-nginx/examples/grpc/),也可以 [使用 istio 转发 gRPC](https://istiobyexample.dev/grpc/),这样对于 gRPC 这样多个请求复用同一个长连接的场景,经过七层代理后,可以自动拆分请求,在请求级别负载均衡。 2. 不直接请求后端,通过七层代理访问。比如 gRPC 协议,可以 [使用 nginx ingress 转发 gRPC](https://kubernetes.github.io/ingress-nginx/examples/grpc/),也可以 [使用 istio 转发 gRPC](https://istiobyexample.dev/grpc/),这样对于 gRPC 这样多个请求复用同一个长连接的场景,经过七层代理后,可以自动拆分请求,在请求级别负载均衡。
3. kube-proxy 的 ipvs 转发策略设置为 sh (`--ipvs-scheduler=sh`)。如果用的腾讯云 EKS 弹性集群,没有节点,看不到 kube-proxy可以通过 `eks.tke.cloud.tencent.com/ipvs-scheduler: 'sh'` 这样的注解来设置,另外还支持将端口号也加入到 hash 的 key更利于负载均衡需再设置下 `eks.tke.cloud.tencent.com/ipvs-sh-port: "true"`,参考 [EKS 注解](../tencent/appendix/eks-annotations.md#%E8%AE%BE%E7%BD%AE-ipvs-%E5%8F%82%E6%95%B0)。 3. kube-proxy 的 ipvs 转发策略设置为 sh (`--ipvs-scheduler=sh`)。如果用的腾讯云 EKS 弹性集群,没有节点,看不到 kube-proxy可以通过 `eks.tke.cloud.tencent.com/ipvs-scheduler: 'sh'` 这样的注解来设置,另外还支持将端口号也加入到 hash 的 key更利于负载均衡需再设置下 `eks.tke.cloud.tencent.com/ipvs-sh-port: "true"`,参考 [Serverless 注解](https://cloud.tencent.com/document/product/457/44173#.E8.AE.BE.E7.BD.AE-ipvs-.E5.8F.82.E6.95.B0)。

View File

@ -0,0 +1,10 @@
# 安装 aws-load-balancer-controller
## 概述
EKS 集群创建好后,默认只有一个 CLB (Classic Load Balancer) 类型的 Service 实现,托管的, 用户不可见,不感知。
通常要安装开源的 [AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller) 作为 Service/Ingress 在 AWS 环境里的 LB 实现:
* Service 使用 NLB (Network Load Balancer) 实现,默认通过 MutatingWebhook 自动为 Service 加上 LoadBalancerClass 指定为 `service.k8s.aws/nlb` 来替代默认的 CLB 实现。
* Ingress 使用 ALB (Application Load Balancer) 实现。

828
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -15,27 +15,27 @@
"typecheck": "tsc" "typecheck": "tsc"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^3.1.0", "@docusaurus/core": "^3.2.1",
"@docusaurus/plugin-ideal-image": "^3.1.0", "@docusaurus/plugin-ideal-image": "^3.2.1",
"@docusaurus/plugin-pwa": "^3.1.0", "@docusaurus/plugin-pwa": "^3.2.1",
"@docusaurus/preset-classic": "^3.1.0", "@docusaurus/preset-classic": "^3.2.1",
"@giscus/react": "^2.3.0", "@giscus/react": "^3.0.0",
"@mdx-js/react": "^3.0.0", "@mdx-js/react": "^3.0.1",
"clsx": "^1.2.1", "clsx": "^2.1.0",
"docusaurus-plugin-sass": "^0.2.5", "docusaurus-plugin-sass": "^0.2.5",
"path-browserify": "^1.0.1", "path-browserify": "^1.0.1",
"plugin-image-zoom": "github:flexanalytics/plugin-image-zoom", "plugin-image-zoom": "github:flexanalytics/plugin-image-zoom",
"prism-react-renderer": "^2.1.0", "prism-react-renderer": "^2.3.1",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
"react": "^18.0.0", "react": "^18.0.0",
"react-dom": "^18.0.0", "react-dom": "^18.0.0",
"sass": "^1.69.5" "sass": "^1.74.1"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^3.1.0", "@docusaurus/module-type-aliases": "^3.2.1",
"@docusaurus/tsconfig": "^3.1.0", "@docusaurus/tsconfig": "^3.2.1",
"@docusaurus/types": "^3.1.0", "@docusaurus/types": "^3.2.1",
"typescript": "~5.2.2" "typescript": "^5.4.4"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [