开发者社区> 问答> 正文

如何删除处于终止状态的命名空间

已解决

尝试删除Kubernetes命名空间后,长时间停留在终止状态。

kubectl delete ns <namespacename>
Error from server (Conflict): Operation cannot be fulfilled on namespaces "<namespacename>": The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system. 

kubectl describe ns <namespacename>
Name: <namespacename> 
Labels: <none> 
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"<namespacename>","namespace":""}} 

Status: Terminating 

展开
收起
游客rda5n5ukztvu2 2022-10-27 16:53:19 100 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    问题原因

    如果Kubernetes集群的服务配置了externalTrafficPolicy: Local,则只有部署了服务的后端Pod才能访问SLB地址。因为SLB地址是集群外使用,如果集群节点和Pod不能直接访问SLB地址,请求不会路由到负载均衡,而是被当作服务的扩展IP地址,被kube-proxy的iptables或IPVS转发。

    如果集群节点或者Pod所在的节点上没有相应的后端服务Pod,就会发生网络不通的问题。而如果有相应的后端服务Pod,则可以正常访问SLB地址。更多信息,请参见iptables规则

    解决方案

    • 您可以在Kubernetes集群内通过ClusterIP或者服务名访问SLB地址。其中入口网关的服务名为istio-ingressgateway.istio-system。

    说明 推荐使用该方法。

    • 如果您不需要源IP,您可以使用以下方法。

    将入口网关服务中的externalTrafficPolicy修改为Cluster,但是在应用中会丢失源IP。关于修改入口网关的更多信息,请参见修改入口网关服务

    apiVersion: istio.alibabacloud.com/v1beta1kind: IstioGatewaymetadata:  name: ingressgateway  namespace: istio-system  ....spec:  externalTrafficPolicy: Cluster....
    • 如果您使用的是Terway的ENI或者ENI多IP集群,您可以使用以下方法。该方法不会丢失源IP,也支持在集群内访问SLB地址。

    将入口网关服务中的externalTrafficPolicy修改为Cluster,并且添加ENI直通的Annotation,例如serviceAnnotations: service.beta.kubernetes.io/backend-type:"eni"。关于修改入口网关的更多信息,请参见修改入口网关服务

    apiVersion: istio.alibabacloud.com/v1beta1kind: IstioGatewaymetadata:  name: ingressgateway  namespace: istio-system  ....spec:  externalTrafficPolicy: Cluster  maxReplicas: 5  minReplicas: 2  ports:    - name: status-port      port: 15020      targetPort: 15020    - name: http2      port: 80      targetPort: 80    - name: https      port: 443      targetPort: 443    - name: tls      port: 15443      targetPort: 15443  replicaCount: 2  resources:    limits:      cpu: '2'      memory: 2G    requests:      cpu: 200m      memory: 256Mi  runAsRoot: false  serviceAnnotations:    service.beta.kubernetes.io/backend-type: eni  serviceType: LoadBalancer
    2022-10-27 17:23:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载