|
@@ -1,12 +1,12 @@
|
|
|
-# alien-ack-cluster 使用说明与�度�布
|
|
|
|
|
|
|
+# alien-ack-cluster 使用说明与�度��
|
|
|
|
|
|
|
|
-集群:**alien-ack-cluster**(ACK 托管版,Kubernetes **v1.26.2**ï¼‰ã€‚èŠ‚ç‚¹æ± **default-nodepool** 当å‰� **3 节点**(截图ä¸çжæ€�为 **Unknown** 时须先修å¤�,å�¦åˆ™ Pod æ— æ³•è°ƒåº¦ï¼‰ã€‚
|
|
|
|
|
|
|
+集群ï¼?*alien-ack-cluster**(ACK 托管版,Kubernetes **v1.26.2**ï¼‰ã€‚èŠ‚ç‚¹æ± **default-nodepool** 当å‰� **3 节点**(截图ä¸çжæ€�为 **Unknown** 时须先修å¤�,å�¦åˆ™ Pod æ— æ³•è°ƒåº¦ï¼‰ã€?
|
|
|
|
|
|
|
|
-Harbor:**39.106.135.88**(与 Jenkins 构建机�区域/VPC 为佳,��跨公网拉镜�超时)。
|
|
|
|
|
|
|
+Harbor�*39.106.135.88**(与 Jenkins 构建机�区域/VPC 为佳,��跨公网拉镜�超时)�
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## 一�上线�检查清�
|
|
|
|
|
|
|
+## 一�上线�检查清�
|
|
|
|
|
|
|
|
### 1. 节点状�为 Ready
|
|
### 1. 节点状�为 Ready
|
|
|
|
|
|
|
@@ -14,60 +14,60 @@ Harbor:**39.106.135.88**(与 Jenkins 构建机�区域/VPC 为佳,��
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
kubectl get nodes -o wide
|
|
kubectl get nodes -o wide
|
|
|
-kubectl describe node <节点�>
|
|
|
|
|
|
|
+kubectl describe node <节点�
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-常è§�åŽŸå› ï¼š
|
|
|
|
|
|
|
+常è§�åŽŸå› ï¼?
|
|
|
|
|
|
|
|
| 现象 | 处� |
|
|
| 现象 | 处� |
|
|
|
|------|------|
|
|
|------|------|
|
|
|
-| NotReady + 超时 | 节点安全组未放行 **6443**�**10250**;节点与 API Server 网络�通 |
|
|
|
|
|
-| Kubelet 未�动 | SSH 到 ECS,`systemctl status kubelet` |
|
|
|
|
|
|
|
+| NotReady + 超时 | 节点安全组未放行 **6443**�*10250**;节点与 API Server 网络��|
|
|
|
|
|
+| Kubelet 未��| SSH �ECS,`systemctl status kubelet` |
|
|
|
| ç£�盘/内å˜åŽ‹åŠ› | `df -h`ã€�`free -h`,清ç�†é•œåƒ�或扩容 |
|
|
| ç£�盘/内å˜åŽ‹åŠ› | `df -h`ã€�`free -h`,清ç�†é•œåƒ�或扩容 |
|
|
|
-| 容器�行时 | 节点为 **containerd 1.6.20**,勿混用 docker 与 containerd �置 |
|
|
|
|
|
|
|
+| 容器�行�| 节点�**containerd 1.6.20**,勿混用 docker �containerd �置 |
|
|
|
|
|
|
|
|
-ä¿®å¤�å�Žåº”显示 **Ready**,且 `kubectl get pods -n kube-system` ä¸ CoreDNSã€�kube-proxy æ£å¸¸ï¼ˆæŽ§åˆ¶å�°ã€Œé›†ç¾¤å·¡æ£€ã€�曾æ��示 CoreDNS 异常时优先处ç�†ï¼‰ã€‚
|
|
|
|
|
|
|
+ä¿®å¤�å�Žåº”显示 **Ready**,且 `kubectl get pods -n kube-system` ä¸?CoreDNSã€�kube-proxy æ£å¸¸ï¼ˆæŽ§åˆ¶å�°ã€Œé›†ç¾¤å·¡æ£€ã€�曾æ��示 CoreDNS 异常时优先处ç�†ï¼‰ã€?
|
|
|
|
|
|
|
|
### 2. 本地 kubectl 接入 ACK
|
|
### 2. 本地 kubectl 接入 ACK
|
|
|
|
|
|
|
|
-1. 控制� → **alien-ack-cluster** → **连接信�** → �制 **公网/内网 kubeconfig**(内网 Jenkins 用内网地�)。
|
|
|
|
|
-2. ä¿�å˜ä¸ºæ–‡ä»¶ï¼Œä¾‹å¦‚ `~/.kube/config-ack-alien`。
|
|
|
|
|
-3. Jenkins 凿�®ç±»åž‹ **Secret file**,ID 如 `ack-kubeconfig-alien`。
|
|
|
|
|
-4. æµ�水线ä¸ï¼š`withCredentials([file(credentialsId: 'ack-kubeconfig-alien', variable: 'KUBECONFIG')]) { sh 'kubectl get ns' }`。
|
|
|
|
|
|
|
+1. 控制��**alien-ack-cluster** �**连接信�** ��制 **公网/内网 kubeconfig**(内�Jenkins 用内网地�)�
|
|
|
|
|
+2. ä¿�å˜ä¸ºæ–‡ä»¶ï¼Œä¾‹å¦‚ `~/.kube/config-ack-alien`ã€?
|
|
|
|
|
+3. Jenkins 凿�®ç±»åž‹ **Secret file**,ID å¦?`ack-kubeconfig-alien`ã€?
|
|
|
|
|
+4. æµ�水线ä¸ï¼š`withCredentials([file(credentialsId: 'ack-kubeconfig-alien', variable: 'KUBECONFIG')]) { sh 'kubectl get ns' }`ã€?
|
|
|
|
|
|
|
|
-### 3. Harbor 与 ACK 拉镜�
|
|
|
|
|
|
|
+### 3. Harbor �ACK 拉镜�
|
|
|
|
|
|
|
|
-1. Harbor 项目 `alien` 设为 **�有**,创建 **机器人账�**(push + pull)。
|
|
|
|
|
-2. ACK 命�空间创建 **imagePullSecret**(� `k8s/examples/secret-harbor.example.yaml`)。
|
|
|
|
|
-3. � Deployment `spec.template.spec.imagePullSecrets` 引用该 Secret。
|
|
|
|
|
-4. 在 **æ¯�å�°èŠ‚ç‚¹** 或仅ä¾�èµ– K8S Secret:推è��å�ªç”¨ `imagePullSecrets`ï¼Œæ— éœ€èŠ‚ç‚¹ docker login。
|
|
|
|
|
-5. 将 Jenkins 机构建用的基础镜� `my-openjdk8-ffmpeg:v1` 推�到 Harbor,例如:
|
|
|
|
|
- `docker tag my-openjdk8-ffmpeg:v1 39.106.135.88/alien/base/openjdk8-ffmpeg:v1`
|
|
|
|
|
- `docker push 39.106.135.88/alien/base/openjdk8-ffmpeg:v1`
|
|
|
|
|
|
|
+1. Harbor 项目 `alien` 设为 **�有**,创�**机器人账�*(push + pull)�
|
|
|
|
|
+2. ACK 命�空间创建 **imagePullSecret**(� `k8s/examples/secret-harbor.example.yaml`)�
|
|
|
|
|
+3. �Deployment `spec.template.spec.imagePullSecrets` 引用�Secret�
|
|
|
|
|
+4. åœ?**æ¯�å�°èŠ‚ç‚¹** 或仅ä¾�èµ– K8S Secret:推è��å�ªç”?`imagePullSecrets`ï¼Œæ— éœ€èŠ‚ç‚¹ docker loginã€?
|
|
|
|
|
+5. �Jenkins 机构建用的基础镜� `my-openjdk8-ffmpeg:v1` 推�到 Harbor,例如:
|
|
|
|
|
+ `docker tag my-openjdk8-ffmpeg:v1 39.106.135.88/alien_cloud/base/openjdk8-ffmpeg:v1`
|
|
|
|
|
+ `docker push 39.106.135.88/alien_cloud/base/openjdk8-ffmpeg:v1`
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## 二�推� K8S 资�模型
|
|
|
|
|
|
|
+## 二�推�K8S 资�模型
|
|
|
|
|
|
|
|
```text
|
|
```text
|
|
|
Namespace: alien-produ
|
|
Namespace: alien-produ
|
|
|
-├── Deployment/gateway (stable, 副本数 N)
|
|
|
|
|
-├── Deployment/gateway-canary (ç�°åº¦, 副本数 1~2,仅 canary ç–略时更新)
|
|
|
|
|
-├── Service/gateway → stable Pod
|
|
|
|
|
-├── Service/gateway-canary → canary Pod
|
|
|
|
|
-├── Ingress/alien-gateway → 主路由 + Nginx �度注解
|
|
|
|
|
-└── ConfigMap/Secret → bootstrapã€�Jasypt(勿把明文密ç �æ��交 Git)
|
|
|
|
|
|
|
+├── Deployment/gateway (stable, 副本�N)
|
|
|
|
|
+├── Deployment/gateway-canary (ç�°åº¦, 副本æ•?1~2,仅 canary ç–略时更æ–?
|
|
|
|
|
+├── Service/gateway �stable Pod
|
|
|
|
|
+├── Service/gateway-canary �canary Pod
|
|
|
|
|
+├── Ingress/alien-gateway �主路�+ Nginx �度注解
|
|
|
|
|
+└── ConfigMap/Secret â†?bootstrapã€�Jasypt(勿把明文密ç �æ��äº?Gitï¼?
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Java 微�务端�与现网 compose 一致(gateway **8000**,store **50014**,…),�� `deployment-*.yaml`。
|
|
|
|
|
|
|
+Java 微�务端�与现网 compose 一致(gateway **8000**,store **50014**,…),��`deployment-*.yaml`�
|
|
|
|
|
|
|
|
-**é…�ç½®ä¸å¿ƒ**:ACK 上 Nacos è‹¥ä»�用 39.106.135.88 上的实例,须在 Pod 环境å�˜é‡�或 `bootstrap-prod.yml` ä¸å†™ **å�¯è¾¾çš„ K8S Service 地å�€æˆ– SLB**,ä¸�能写 Docker 容器å�� `nacos`(除é�ž Nacos 也è¿�è¿›å�Œä¸€é›†ç¾¤ï¼‰ã€‚
|
|
|
|
|
|
|
+**é…�ç½®ä¸å¿ƒ**:ACK ä¸?Nacos è‹¥ä»�ç”?39.106.135.88 上的实例,须åœ?Pod 环境å�˜é‡�æˆ?`bootstrap-prod.yml` ä¸å†™ **å�¯è¾¾çš?K8S Service 地å�€æˆ?SLB**,ä¸�能写 Docker 容器å�?`nacos`(除é�?Nacos 也è¿�è¿›å�Œä¸€é›†ç¾¤ï¼‰ã€?
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## 三��度�布(推�:Nginx Ingress 金�雀)
|
|
|
|
|
|
|
+## 三��度�布(推�:Nginx Ingress 金�雀�
|
|
|
|
|
|
|
|
-ACK 控制� → **应用** → **Ingress** 需已安装 **Nginx Ingress Controller**(应用市场「Nginx Ingress Controller�或「ALB Ingress�;下文以 **Nginx Ingress 注解** 为例,与仓库示例一致)。
|
|
|
|
|
|
|
+ACK 控制��**应用** �**Ingress** 需已安�**Nginx Ingress Controller**(应用市场「Nginx Ingress Controller�或「ALB Ingress�;下文�**Nginx Ingress 注解** 为例,与仓库示例一致)�
|
|
|
|
|
|
|
|
### 原�
|
|
### 原�
|
|
|
|
|
|
|
@@ -80,22 +80,22 @@ flowchart LR
|
|
|
SvcCanary --> DepCanary[Deployment gateway-canary]
|
|
SvcCanary --> DepCanary[Deployment gateway-canary]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-- **stable**:当�线上版本,副本数较多。
|
|
|
|
|
-- **canary**:新版本,副本数少。
|
|
|
|
|
-- **Ingress** 通过注解 `canary` + `canary-weight` 按百分比分�。
|
|
|
|
|
|
|
+- **stable**:当�线上版本,副本数较多�
|
|
|
|
|
+- **canary**:新版本,副本数少�
|
|
|
|
|
+- **Ingress** 通过注解 `canary` + `canary-weight` 按百分比分��
|
|
|
|
|
|
|
|
-### æ“�作æ¥éª¤ï¼ˆä¸Ž Jenkins å�‚æ•°è�”动)
|
|
|
|
|
|
|
+### æ“�作æ¥éª¤ï¼ˆä¸Ž Jenkins å�‚æ•°è�”动ï¼?
|
|
|
|
|
|
|
|
1. **首次**:`kubectl apply -f k8s/examples/namespace.yaml`
|
|
1. **首次**:`kubectl apply -f k8s/examples/namespace.yaml`
|
|
|
-2. **首次**:`kubectl apply -f k8s/examples/deployment-gateway.yaml`(� stable Service)
|
|
|
|
|
|
|
+2. **首次**:`kubectl apply -f k8s/examples/deployment-gateway.yaml`(� stable Service�
|
|
|
3. **首次**:`kubectl apply -f k8s/examples/deployment-gateway-canary.yaml` + `service-gateway-canary.yaml`
|
|
3. **首次**:`kubectl apply -f k8s/examples/deployment-gateway-canary.yaml` + `service-gateway-canary.yaml`
|
|
|
-4. **首次**:`kubectl apply -f k8s/examples/ingress-gateway-canary.example.yaml`(改 host�TLS)
|
|
|
|
|
-5. Jenkins 构建新镜� `39.106.135.88/alien/gateway:build-42`
|
|
|
|
|
-6. Job 选 **DEPLOY_STRATEGY=canary**,**CANARY_WEIGHT=10**:
|
|
|
|
|
- - 仅更新 `gateway-canary` Deployment 镜�
|
|
|
|
|
- - 将 Ingress 注解 `canary-weight` 设为 `10`
|
|
|
|
|
-7. 观察监控与错误率å�Žï¼Œé€�æ¥æ��高 `20` → `50` → `100`
|
|
|
|
|
-8. **å…¨é‡�**:将 **stable** Deployment 镜åƒ�改为新版本,**canary-weight ç½® 0** æˆ–åˆ é™¤ canary Deployment,é�¿å…�长期å�Œè½¨
|
|
|
|
|
|
|
+4. **首次**:`kubectl apply -f k8s/examples/ingress-gateway-canary.example.yaml`(改 host�TLS�
|
|
|
|
|
+5. Jenkins 构建新镜�`39.106.135.88/alien_cloud/gateway:build-42`
|
|
|
|
|
+6. Job �**DEPLOY_STRATEGY=canary**�*CANARY_WEIGHT=10**�
|
|
|
|
|
+ - 仅更�`gateway-canary` Deployment 镜�
|
|
|
|
|
+ - �Ingress 注解 `canary-weight` 设为 `10`
|
|
|
|
|
+7. 观察监控与错误率å�Žï¼Œé€�æ¥æ��高 `20` â†?`50` â†?`100`
|
|
|
|
|
+8. **å…¨é‡�**:将 **stable** Deployment 镜åƒ�改为新版本,**canary-weight ç½?0** æˆ–åˆ é™?canary Deployment,é�¿å…�长期å�Œè½?
|
|
|
|
|
|
|
|
示例注解(完整� `ingress-gateway-canary.example.yaml`):
|
|
示例注解(完整� `ingress-gateway-canary.example.yaml`):
|
|
|
|
|
|
|
@@ -106,59 +106,59 @@ metadata:
|
|
|
nginx.ingress.kubernetes.io/canary-weight: "10"
|
|
nginx.ingress.kubernetes.io/canary-weight: "10"
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 与 RollingUpdate 的区别
|
|
|
|
|
|
|
+### �RollingUpdate 的区�
|
|
|
|
|
|
|
|
-| 方� | K8S 内置 RollingUpdate | Ingress �度(本方案) |
|
|
|
|
|
|
|
+| 方� | K8S 内置 RollingUpdate | Ingress �度(本方案�|
|
|
|
|------|------------------------|-------------------------|
|
|
|------|------------------------|-------------------------|
|
|
|
-| �� | � Pod 替�,旧版 Pod ���少 | 新旧版本 **�时** 接��,�调比例 |
|
|
|
|
|
-| 回滚 | `kubectl rollout undo` | 将 `canary-weight` 设为 `0` 或回滚 canary Deployment |
|
|
|
|
|
|
|
+| �� | �Pod 替�,旧�Pod ���少 | 新旧版本 **�时** 接��,�调比例 |
|
|
|
|
|
+| 回滚 | `kubectl rollout undo` | �`canary-weight` 设为 `0` 或回�canary Deployment |
|
|
|
| Jenkins | `DEPLOY_STRATEGY=rolling` | `DEPLOY_STRATEGY=canary` |
|
|
| Jenkins | `DEPLOY_STRATEGY=rolling` | `DEPLOY_STRATEGY=canary` |
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## å››ã€�ä¸‰èŠ‚ç‚¹èŠ‚ç‚¹æ± å®¹é‡�建议
|
|
|
|
|
|
|
+## å››ã€�ä¸‰èŠ‚ç‚¹èŠ‚ç‚¹æ± å®¹é‡�建è®?
|
|
|
|
|
|
|
|
-当å‰�约 **25 æ ¸ / 45Gi** 集群总é‡�(控制å�°èµ„æº�监控)。7 个 Java æœ�务若å�„ **2 副本** + ç�°åº¦ **1 副本**,峰值 Pod 数约 **7×3=21**,需控制æ¯� Pod **request**(示例 manifest ä¸ `512Mi`/`250m`),é�¿å…� Pending。
|
|
|
|
|
|
|
+当å‰�çº?**25 æ ?/ 45Gi** 集群总é‡�(控制å�°èµ„æº�监控)ã€? ä¸?Java æœ�务若å�„ **2 副本** + ç�°åº¦ **1 副本**,峰å€?Pod 数约 **7×3=21**,需控制æ¯?Pod **request**(示ä¾?manifest ä¸?`512Mi`/`250m`),é�¿å…� Pendingã€?
|
|
|
|
|
|
|
|
-调度建议:
|
|
|
|
|
|
|
+调度建议�
|
|
|
|
|
|
|
|
-- æ— çŠ¶æ€�æœ�务:**podAntiAffinity** å°½é‡� spread 到 3 å�°ï¼ˆç¤ºä¾‹ deployment å·²å�«è½¯å��亲和)
|
|
|
|
|
-- **gateway** � 2 副本 + HPA(需 metrics-server;控制�若�示 APIService `metrics.k8s.io` ��用,先装 metrics-server �开 HPA)
|
|
|
|
|
-- **job**�定时任务类� 1 副本
|
|
|
|
|
|
|
+- æ— çŠ¶æ€�æœ�务:**podAntiAffinity** å°½é‡� spread åˆ?3 å�°ï¼ˆç¤ºä¾‹ deployment å·²å�«è½¯å��亲和ï¼?
|
|
|
|
|
+- **gateway** �2 副本 + HPA(需 metrics-server;控制�若��APIService `metrics.k8s.io` ��用,先装 metrics-server �开 HPA�
|
|
|
|
|
+- **job**�定时任务类�1 副本
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## 五ã€�从 Docker Compose è¿�到 ACK çš„æ˜ å°„
|
|
|
|
|
|
|
+## 五ã€�从 Docker Compose è¿�到 ACK çš„æ˜ å°?
|
|
|
|
|
|
|
|
-| Compose(39.105.153.68 produ) | ACK |
|
|
|
|
|
|
|
+| Composeï¼?9.105.153.68 produï¼?| ACK |
|
|
|
|------------------------------|-----|
|
|
|------------------------------|-----|
|
|
|
| `gateway-produ` 容器 | Deployment `gateway` |
|
|
| `gateway-produ` 容器 | Deployment `gateway` |
|
|
|
-| �挂载 jar | 镜�内打包 jar(本�水线 Dockerfile) |
|
|
|
|
|
|
|
+| �挂�jar | 镜�内打�jar(本�水�Dockerfile�|
|
|
|
| `common-network-produ` | ClusterIP Service + Ingress |
|
|
| `common-network-produ` | ClusterIP Service + Ingress |
|
|
|
-| 环境�� Jasypt | Secret `alien-jasypt` 或 ACK �置项 |
|
|
|
|
|
-| 支付è¯�书目录 | Secret volume `alien-pay-cert-store` ç‰ |
|
|
|
|
|
|
|
+| 环境�� Jasypt | Secret `alien-jasypt` �ACK �置�|
|
|
|
|
|
+| 支付è¯�书目录 | Secret volume `alien-pay-cert-store` ç?|
|
|
|
|
|
|
|
|
-è¿�移动作顺åº�建议:**gateway → store → å…¶ä½™**ï¼›æ¯�è¿�一个æœ�务,Ingress 切一æ�¡ path 或å�域å��,ä¿�ç•™ compose 回滚路径直至稳定。
|
|
|
|
|
|
|
+è¿�移动作顺åº�建议ï¼?*gateway â†?store â†?å…¶ä½™**ï¼›æ¯�è¿�一个æœ�务,Ingress 切一æ�?path 或å�域å��,ä¿�ç•?compose 回滚路径直至稳定ã€?
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## å…ã€�阿里云 ACK 控制å�°å¸¸ç”¨å…¥å�£
|
|
|
|
|
|
|
+## å…ã€�阿里云 ACK 控制å�°å¸¸ç”¨å…¥å�?
|
|
|
|
|
|
|
|
| ç›®æ ‡ | 路径 |
|
|
| ç›®æ ‡ | 路径 |
|
|
|
|------|------|
|
|
|------|------|
|
|
|
-| 工作负载 / Deployment | 集群 → 工作负载 → æ— çŠ¶æ€� |
|
|
|
|
|
-| �度 / Ingress | 集群 → 网络 → Ingress |
|
|
|
|
|
-| 镜�拉�失败事件 | 工作负载 → Pod → 事件 |
|
|
|
|
|
-| 日志 | 工作负载 → Pod → 日志;或接入 SLS |
|
|
|
|
|
-| èŠ‚ç‚¹æ± æ‰©å®¹ | 节点管ç�† → default-nodepool → 扩容 |
|
|
|
|
|
|
|
+| 工作负载 / Deployment | 集群 â†?工作负载 â†?æ— çŠ¶æ€?|
|
|
|
|
|
+| �度 / Ingress | 集群 �网络 �Ingress |
|
|
|
|
|
+| 镜�拉�失败事件 | 工作负载 �Pod �事件 |
|
|
|
|
|
+| 日志 | 工作负载 �Pod �日志;或接入 SLS |
|
|
|
|
|
+| èŠ‚ç‚¹æ± æ‰©å®?| 节点管ç�† â†?default-nodepool â†?扩容 |
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## 七�与 Jenkins produ �水线�调
|
|
|
|
|
|
|
+## 七�与 Jenkins produ �水线��
|
|
|
|
|
|
|
|
-1. 手工 `kubectl apply` 示例 manifest 一次。
|
|
|
|
|
-2. 跑通 `gateway-k8s` Job(rolling,æ�ƒé‡� 100% ç‰ä»·å…¨é‡�)。
|
|
|
|
|
-3. �跑 `canary` + `CANARY_WEIGHT=5` 验���分裂。
|
|
|
|
|
-4. 其余 6 个�务�制 gateway 的 Ingress/Deployment 命�模�。
|
|
|
|
|
|
|
+1. 手工 `kubectl apply` 示例 manifest 一次�
|
|
|
|
|
+2. è·‘é€?`gateway-k8s` Job(rolling,æ�ƒé‡?100% ç‰ä»·å…¨é‡�)ã€?
|
|
|
|
|
+3. �跑 `canary` + `CANARY_WEIGHT=5` 验���分裂�
|
|
|
|
|
+4. 其余 6 个�务��gateway �Ingress/Deployment 命�模��
|
|
|
|
|
|
|
|
-问题排查:`kubectl describe pod -n alien-produ`�`kubectl logs -n alien-produ deploy/gateway-canary`。
|
|
|
|
|
|
|
+问题排查:`kubectl describe pod -n alien-produ`�`kubectl logs -n alien-produ deploy/gateway-canary`�
|