当前,我正在使用Kubernetes Nginx Ingress的Helm图表来配置UDP侦听器。这是我的头盔图表文件配置-
我添加了- def from_category
@category = Category.find(params[:cat_id])
@products = Product.where(category_id: params[:cat_id])
@filtered_products = @products.paginate(page: params[:page], per_page: 30)
respond_to do |format|
format.js
end
end
作为额外参数的一部分。
这是我的头盔值文件-
udp-services-configmap: $(POD_NAMESPACE)/nginx-ingress-udp
所以我也添加了configmap-
## nginx configuration
## Ref: https://github.com/kubernetes/ingress-nginx/blob/master/controllers/nginx/configuration.md
##
controller:
image:
repository: k8s.gcr.io/ingress-nginx/controller
tag: "v0.40.2"
digest: sha256:46ba23c3fbaafd9e5bd01ea85b2f921d9f2217be082580edc22e6c704a83f02f
pullPolicy: IfNotPresent
runAsUser: 101
allowPrivilegeEscalation: true
# Configures the ports the nginx-controller listens on
containerPort:
http: 80
https: 443
udp: 9012
dnsPolicy: ClusterFirst
reportNodeInternalIp: false
hostNetwork: false
hostPort:
enabled: true
ports:
udp: 9012
# http: 80
# https: 443
electionID: ingress-controller-leader
ingressClass: nginx
publishService:
enabled: true
pathOverride: ""
scope:
enabled: false
namespace: "" # defaults to .Release.Namespace
configMapNamespace: "" # defaults to .Release.Namespace
tcp:
configMapNamespace: "" # defaults to .Release.Namespace
annotations: {}
udp:
configMapNamespace: "" # defaults to .Release.Namespace
annotations: {}
extraArgs:
udp-services-configmap: $(POD_NAMESPACE)/nginx-ingress-udp
extraEnvs: []
kind: Deployment
annotations: {}
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
minReadySeconds: 0
nodeSelector:
kubernetes.io/os: linux
livenessProbe:
failureThreshold: 5
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
port: 10254
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
port: 10254
healthCheckPath: "/healthz"
podAnnotations: {}
replicaCount: 1
minAvailable: 1
resources:
requests:
cpu: 100m
memory: 90Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 11
targetCPUUtilizationPercentage: 50
targetMemoryUtilizationPercentage: 50
autoscalingTemplate: []
enableMimalloc: true
customTemplate:
configMapName: ""
configMapKey: ""
service:
enabled: true
annotations: {}
labels: {}
externalIPs: []
loadBalancerSourceRanges: []
enableHttp: true
enableHttps: true
ports:
http: 80
https: 443
udp: 9012
targetPorts:
http: http
https: https
udp: 9012
type: LoadBalancer
nodePorts:
http: ""
https: ""
tcp: {}
udp: {}
internal:
enabled: false
annotations: {}
extraContainers: []
extraVolumeMounts: []
extraVolumes: []
extraInitContainers: []
admissionWebhooks:
annotations: {}
enabled: true
failurePolicy: Fail
port: 8443
certificate: "/usr/local/certificates/cert"
key: "/usr/local/certificates/key"
namespaceSelector: {}
objectSelector: {}
service:
annotations: {}
externalIPs: []
loadBalancerSourceRanges: []
servicePort: 443
type: ClusterIP
patch:
enabled: true
image:
repository: docker.io/jettech/kube-webhook-certgen
tag: v1.3.0
pullPolicy: IfNotPresent
priorityClassName: ""
podAnnotations: {}
nodeSelector: {}
tolerations: []
runAsUser: 2000
tcp: {}
udp: {}
结果就是这里的入口服务-
现在我试图在这里获得服务是两个问题-
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-udp
namespace: ingress-nginx
data:
9012: "services/service-listener:9012"
我正在使用AKS btw。
答案 0 :(得分:0)
为UDP Load Balancing
创建配置映射后,根据nginx documentation,您必须创建一个将为入口公开那些端口的服务。
您可以按照以下官方指南进行操作,例如:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: LoadBalancer
ports:
- name: proxied-tcp-9012
port: 9012
targetPort: 9012
protocol: UDP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
输出将类似于以下内容:
$kubectl get svc | grep ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
ingress-nginx LoadBalancer 10.0.0.237 12.345.67.89 9012:32291/UDP