我正在尝试在一个 k8s 集群上设置多个服务,并在前面使用一个 Ingress 控制器对所有服务进行 tls 终止。这是一个很好的例子:https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/examples/multi-tls/multi-tls.yaml
我最初遵循这个示例: https: //github.com/brunoterkaly/ingress,然后将其扩展为具有多个 tls 服务。
通过在 Azure 上公开我的 nginx 复制控制器 AKS,会自动创建一个负载均衡器和一个公共 IP 地址,我可以向其应用 A 记录:
kubectl expose rc nginx-ingress-rc --port="80,443" --type="LoadBalancer"
但是,我还想要第二个 A 记录,它指向相同的 IP 地址(我猜?),以便我可以从不同的域访问我的入口控制器。我不知道如何让 AKS 为此目的创建第二个?
我们将 ms 作为 ALB 入口(ALB 负载均衡器)后面的 pod 运行。我的问题是所有 HTTP 请求日志都显示集群 IP 地址而不是 HTTP 客户端的 IP。有没有其他方法可以让 kubernetes 服务将此信息传递给我的应用服务器以显示客户端 IP 地址?即使尝试使用 java 代码 usig get.remote.address 函数,结果仍然相同。我知道有一种方法“service.spec.externalTrafficPolicy”,但这仅适用于 GCE 广告,不适用于 AWS。任何帮助!!!!!!
服务对象的 kubernetes 官方文档有一些关于连接耗尽、超时、附加标签等的注释,但这些仅限于 AWS。
我希望在 Azure 云上的 K8S 部署中找到同样的结果。
例如,
annotations:
service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled: "true"
service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout: "60"
service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout: "300"
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "2"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "6"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "5"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "3"
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
如果不存在这样的注释,有人可以帮助我在 Azure 云上实现相同的目的。提前致谢!
我的机器里有一些 k8s 集群,我尝试做一些学习的东西,但我现在就堆叠起来。
我有 2 个应用程序,一个是 mysql,另一个是 wordpress,它们运行良好。当我为 WordPress 提供 LoadBalancer 类型时,它会获取一个 IP,我可以在浏览器中看到。
所以我想创建一个 Ingress 并按主机名调用,但 Ingress 不采用负载均衡器 IP。我做错了什么吗?
这是我的 Ingress 配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wp-ingress
kubernetes.io/ingress.class: nginx
labels:
name: wp-ingress
spec:
rules:
- host: wordpress.pandora.local
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: wp-svc
port:
number: 80
- host: phpmyadmin.pandora.local
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: phpmyadmin-svc
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
和问题
# kg ingress
NAME CLASS HOSTS ADDRESS PORTS AGE …Run Code Online (Sandbox Code Playgroud) 我正在为 Flytime.io 的前端 https 生成 https(云运行)

现在我想将其用于后端的 https 支持(多入口 gke 自动驾驶仪),来自以下手册,旨在使用 api.flytime.io 域:https: //cloud.google.com/kubernetes-engine/docs /how-to/multi-cluster-ingress#https_support
但是我应该如何使用手册配置 PATH_TO_KEYFILE 和 PATH_TO_CERTFILE (或者还有其他方法可以做到这一点)?如果无法使用 Google 托管认证(为什么?),如何为 api.flytime.io 主机名生成证书并获取 PATH_TO_KEYFILE 和 PATH_TO_CERTFILE?
google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress gke-networking
我正在尝试使用 Kubernetes 和 minikube 部署应用程序。但我有一个奇怪的问题:我可以在终端中使用curl 访问我的应用程序,但不能从浏览器访问我的应用程序。我正在使用“minikubetunnel”命令作为外部IP。
这是我的部署和服务文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodeapp-deployment
labels:
app: nodeapp
spec:
replicas: 1
selector:
matchLabels:
app: nodeapp
template:
metadata:
labels:
app: nodeapp
spec:
containers:
- name: nodeserver
image: tanyadovzhenko/chi-questionnaire-back
env:
- name: PORT
value: "4000"
- name: JWT_ACCESS_KEY
value: "111"
- name: JWT_REFRESH_KEY
value: "111"
- name: HASH_PASSWORD_ALGORITM
value: "sha256"
ports:
- containerPort: 4000Run Code Online (Sandbox Code Playgroud)
apiVersion: v1
kind: Service
metadata:
name: nodeapp-service
spec:
selector:
app: nodeapp
type: LoadBalancer
ports:
- protocol: TCP
port: 4000 …Run Code Online (Sandbox Code Playgroud)我正在使用Azure Devops,并imagePullPolicy"在io.k8s.api.core.v1.PodSpec执行helm install以下操作时获取未知字段:
2019-07-05T10:49:11.0064690Z ##[警告]找不到 ##vso[telemetry.command] 的命令扩展。请参考文档 ( http://go.microsoft.com/fwlink/?LinkId=817296 )
2019-07-05T09:56:41.1837910Z 错误:验证失败:错误验证“”:错误验证数据:ValidationError(Deployment.spec.template.spec):io.k8s.api.core.v1 中的未知字段“imagePullPolicy” .PodSpec
2019-07-05T09:56:41.1980030Z ##[错误]错误:验证失败:错误验证“”:错误验证数据:ValidationError(Deployment.spec.template.spec):io.k8s中的未知字段“imagePullPolicy”。 api.core.v1.PodSpec
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "clusterfitusecaseapihelm.fullname" . }}
labels:
{{ include "clusterfitusecaseapihelm.labels" . | indent 4 }}
spec:
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
selector:
matchLabels:
app.kubernetes.io/name: {{ include "clusterfitusecaseapihelm.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "clusterfitusecaseapihelm.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }} …Run Code Online (Sandbox Code Playgroud) kubernetes ×6
azure-aks ×3
azure ×2
amazon-eks ×1
clientip ×1
deployment ×1
istio ×1
kubectl ×1
minikube ×1
nginx ×1