synchronization

This commit is contained in:
2025-08-25 17:53:08 +08:00
commit c201eb5ef9
318 changed files with 23092 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
> 本文作者:丁辉
# 部署GatewayAPI
[网关控制器列表](https://gateway-api.sigs.k8s.io/implementations/)

View File

@@ -0,0 +1,46 @@
> 本文作者:丁辉
# Ingress公开TCP和UDP服务
[官方文档](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)
1. 添加 Ingress 启动参数
```yaml
- --tcp-services-configmap=$(POD_NAMESPACE)/ingress-nginx-tcp
- --udp-services-configmap=$(POD_NAMESPACE)/ingress-nginx-udp
```
2. 创建 Configmap
> 格式为:<service port>:<namespace/service name>:[PROXY]:[PROXY]
- TCP
```yaml
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: ingress-nginx-tcp
namespace: default
data:
9000: "default/example-go:8080"
EOF
```
- UDP
```yaml
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: ingress-nginx-udp
namespace: default
data:
53: "kube-system/kube-dns:53"
EOF
```
3. 创建完 Configmap 后即可测试访问对应端口

View File

@@ -0,0 +1,38 @@
> 本文作者:丁辉
# Ingress问题记录
> 重启 ingress 控制器后报错
```bash
-------------------------------------------------------------------------------
NGINX Ingress controller
Release: v1.10.1
Build: 4fb5aac1dd3669daa3a14d9de3e3cdb371b4c518
Repository: https://github.com/kubernetes/ingress-nginx
nginx version: nginx/1.25.3
-------------------------------------------------------------------------------
F0504 11:14:47.852320 7 main.go:64] port 80 is already in use. Please check the flag --http-port
```
**解决方法**
> 允许从端口 1 开始的所有端口都可以被非特权用户使用
- 临时解决
```bash
sysctl -w net.ipv4.ip_unprivileged_port_start=1
```
- 永久
```bash
echo 'net.ipv4.ip_unprivileged_port_start = 1' > /etc/sysctl.d/ip_unprivileged_port_start.conf
```
**总结**
这根本就是权限问题, 而官方的报错存在误导性。很让人生气啊, 硬生生看了一下午。

9
网关/Ingress/README.md Normal file
View File

@@ -0,0 +1,9 @@
> 本文作者:丁辉
# Helm部署Nginx-Ingress
> 相关文档地址
**查看此篇文章**
[Helm部署Nginx-Ingress](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Nginx-Ingress.md)

53
网关/README.md Normal file
View File

@@ -0,0 +1,53 @@
> 本文作者:丁辉
# 网关介绍
> Ingress和Gateway API都是Kubernetes集群中用于处理外部流量进入集群的资源类型但它们有不同的设计目标和功能特点。
## Ingress
**Ingress** 是Kubernetes中用来管理进入集群的HTTP和HTTPS流量的资源。它通过定义一些规则来控制服务如何对外暴露并且通常与Ingress控制器一起使用后者负责实际处理和路由流量。
### 主要特点:
1. **规则定义**:通过定义主机名、路径等规则来路由流量到不同的服务。
2. **TLS支持**可以配置TLS证书以支持HTTPS。
3. **负载均衡**:提供基础的负载均衡功能。
4. **扩展性**通过注解支持一些扩展功能但这些功能通常是特定于某个Ingress控制器的。
### 常见Ingress控制器
- NGINX Ingress Controller
- Traefik
- HAProxy
- Kong
## Gateway API
**Gateway API** 是Kubernetes社区中一个相对较新的项目它提供了一组面向现代服务的标准化API旨在替代和扩展现有的Ingress API。Gateway API更加灵活和强大能够支持更复杂的路由和流量管理需求。
### 主要特点:
1. **分离角色**将Gateway流量入口与Route路由规则分开允许不同团队分别管理。
2. **增强的路由能力**支持HTTP、TCP、TLS等多种协议并且能够定义更复杂的路由规则。
3. **统一的配置模型**:提供了一致的配置模型,便于扩展和定制。
4. **多租户支持**通过支持Namespace和GatewayClass方便在多租户环境中使用。
### 主要资源:
- **Gateway**:定义网关的配置,如监听端口、协议等。
- **GatewayClass**:定义网关的实现类型。
- **HTTPRoute**、**TCPRoute**、**TLSRoute**等:定义具体的路由规则。
## Kubernetes官方对Ingress和Gateway API的态度
### **Ingress API**
- **稳定性**Ingress API已经在Kubernetes中稳定运行多年是许多集群中用于管理外部流量的关键组件。
- **维护**虽然Ingress API依然会继续维护但其功能和扩展性已经接近饱和未来的开发重点将更多地转向Gateway API。
### **Gateway API**
- **现代化设计**Gateway API是一个更现代化的流量管理解决方案设计上更加模块化、灵活并且具备更强的可扩展性。
- **功能丰富**相比Ingress APIGateway API支持更多的协议如TCP、UDP、TLS等并且可以定义更复杂的路由和流量管理规则。
- **未来发展方向**Kubernetes社区将把主要的开发和改进精力投入到Gateway API上以满足未来更加复杂和多样化的流量管理需求。