通过Terraform实现Kubernetes Pod公网访问
让EKS上的Splunk Web实现公网访问的方案
1. 定位Splunk Web Pod的标签
要精准关联Splunk Web的Pod,先获取它的标签。执行命令:
kubectl get pods -l app=splunk,component=web
如果没找到结果,就用kubectl describe pod <你的splunk-web-pod名称>查看Pod的Labels字段,把对应标签记下来。
2. 创建专属的LoadBalancer Service
这个Service只会指向Splunk Web的Pod,不会影响集群内其他服务。新建splunk-web-lb.yaml文件,内容如下:
apiVersion: v1 kind: Service metadata: name: splunk-web-loadbalancer spec: type: LoadBalancer selector: # 替换成你查到的Splunk Web Pod标签 app: splunk component: web ports: - protocol: TCP port: 80 targetPort: 8000 # Splunk Web容器默认端口是8000
执行命令应用配置:
kubectl apply -f splunk-web-lb.yaml
3. 获取公网访问地址
等待几分钟,AWS会自动为该Service分配公网ELB。执行命令查看:
kubectl get service splunk-web-loadbalancer
输出里的EXTERNAL-IP就是公网地址,直接访问http://<该IP>即可打开Splunk Web。
4. 简化操作:修改现有Service(若Helm已创建)
如果Splunk Helm Chart已生成对应Service(比如名为splunk-web),直接修改其类型为LoadBalancer即可,无需新建:
kubectl patch service splunk-web -p '{"spec":{"type":"LoadBalancer"}}'
安全提示
- 公网暴露后务必给Splunk设置强密码,避免暴力破解。
- 建议后续配置HTTPS,或用AWS WAF限制允许访问的IP范围,降低安全风险。
内容的提问来源于stack exchange,提问作者lll
相关产品推荐
相关产品推荐

