如何创建ClusterIP Service?LoadBalancer服务类型相关疑问
解决AKS中Windows容器服务的安全访问问题
嘿,针对你在AKS上遇到的Windows容器服务访问安全问题,我来一步步帮你理清:
1. 如何创建ClusterIP类型的服务
其实ClusterIP是Kubernetes服务的默认类型,操作起来很简单,这里给你两种常用的创建方式:
方式一:通过YAML配置文件创建
新建一个比如windows-app-clusterip.yaml的文件,内容如下(注意替换成你自己的容器标签和端口):
apiVersion: v1 kind: Service metadata: name: windows-app-clusterip spec: selector: app: your-windows-app # 需与你的Windows容器Pod的标签完全匹配 ports: - protocol: TCP port: 80 # 集群内部访问的端口 targetPort: 80 # 容器内部监听的端口 type: ClusterIP # 可省略,因为Kubernetes默认服务类型就是ClusterIP
执行命令部署服务:
kubectl apply -f windows-app-clusterip.yaml
方式二:通过kubectl命令快速创建
如果你已经有对应的Deployment,直接用expose命令就能生成ClusterIP服务:
kubectl expose deployment <你的Windows应用Deployment名称> --port=80 --target-port=80 --type=ClusterIP
创建完成后,用kubectl get services查看,这个服务的EXTERNAL-IP列会显示<none>,说明它仅能在集群内部被访问。
2. 服务能否同时拥有多种类型?
答案是不行,每个Kubernetes服务只能指定一种type属性。所以你需要做的是:
- 创建上述的ClusterIP服务,专门供Ingress Controller访问你的Windows容器
- 删除原来的
LoadBalancer类型服务(如果有特殊需求必须保留,一定要通过NetworkPolicy等方式严格限制外部访问,但最安全的做法是直接删除)
调整完成后,记得把Ingress配置里的serviceName改成新创建的ClusterIP服务名称,确保流量能正确转发。这样外部流量只能通过Ingress Controller的HTTPS入口访问你的应用,彻底消除了直接通过服务外部IP访问的安全隐患。
内容的提问来源于stack exchange,提问作者TigersEye120
相关产品推荐
相关产品推荐

