我在Digitalocean上使用Kubernetes,并安装了nginx-ingress,它创建了一个外部负载平衡器。但是,当我使用头盔https://github.com/helm/charts/tree/master/stable/sentry安装Sentry时,创建了另一个负载平衡器。奇怪的是,虽然只能通过Nginx负载平衡器访问哨兵,即如果我将我的域指向在Sentry安装中创建的负载平衡器的ip地址,则它确实会加载。
我是kubernetes的新手,所以很确定我在做错事时 安装Sentry并假定它与我在安装图表时使用的值有关,因为它具有ServiceBlancer的服务类型。
所以我的问题是,我可以摆脱Sentry创建的负载均衡器吗?打破任何东西的最佳方法是什么?
# Name of the service and what port to expose on the pod
# Don't change these unless you know what you're doing
service:
name: sentry
type: LoadBalancer
externalPort: 9000
internalPort: 9000
## External IP addresses of service
## Default: nil
##
# externalIPs:
# - 192.168.0.1
## Configure ingress resource that allow you to access the
## Sentry installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
enabled: true
hostname: sentry.mydomain.com
## Ingress annotations
##
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
## Ingress TLS configuration
## Secrets must be manually created in the namespace
##
tls:
- secretName: sentry-mydomain-crt
hosts:
- sentry.mydomain.com
答案 0 :(得分:4)
是的,您可以在值文件中将服务的类型设置为ClusterIP。
图表内的值文件默认为LoadBalancer类型(https://github.com/helm/charts/blob/master/stable/sentry/values.yaml),但可以通过在部署的值文件中将其设置为ClusterIP或使用'--set service.type = ClusterIP来覆盖此值'作为参数。
然后它将仅通过Ingress公开,并且不会具有外部LoadBalancer。参见Ingress service type
由于已经安装了哨兵,因此您将需要查找其发行名称(您将在“ kubectl get”命令(如“ kubectl get pod”或“ helm list”)中看到它作为哨兵资源的前缀) 。如果您正在使用它,那么您将需要进行“安全升级”。如果您尚未使用它,则可以对该版本进行“删除”操作,然后重新安装。
答案 1 :(得分:2)
使用ClusterIP service type代替LoadBalancer一个:
{{1}}