我是kubernetes和Traefik的新手。
我跟进教程:https://docs.traefik.io/user-guides/crd-acme/
我将其更改为在Scala中使用我的服务,即使用https和9463端口。我正在尝试使用kubernetes和traefik部署Scala服务。
当我直接转发到服务时:
kubectl port-forward service/core-service 8001:9463
我执行一个curl-k'https://localhost:8001/health':
我得到了“{消息:Ok}”
但当我向traefik执行端口转发时
kubectl port-forward service/traefik 9463:9463 -n default
并执行卷曲-khttps://ejemplo.com:9463/tls/health'我收到一个“内部服务器错误”
我想问题是我的“核心服务”正在通过HTTPS协议监听,这就是我添加的方案:https
。我试图通过留档找到解决方案,但令人困惑。
这些是我的yml文件:
服务。亚马尔
apiVersion: v1
kind: Service
metadata:
name: traefik
spec:
ports:
- protocol: TCP
name: admin
port: 8080
- protocol: TCP
name: websecure
port: 9463
selector:
app: traefik
---
apiVersion: v1
kind: Service
metadata:
name: core-service
spec:
ports:
- protocol: TCP
name: websecure
port: 9463
selector:
app: core-service
部署。亚马尔
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: default
name: traefik-ingress-controller
---
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: default
name: traefik
labels:
app: traefik
spec:
replicas: 1
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:v2.0
args:
- --api.insecure
- --accesslog
- --entrypoints.websecure.Address=:9463
- --providers.kubernetescrd
- --certificatesresolvers.default.acme.tlschallenge
- --certificatesresolvers.default.acme.email=foo@you.com
- --certificatesresolvers.default.acme.storage=acme.json
# Please note that this is the staging Let's Encrypt server.
# Once you get things working, you should remove that whole line altogether.
- --certificatesresolvers.default.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
ports:
- name: websecure
containerPort: 9463
- name: admin
containerPort: 8080
---
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: default
name: core-service
labels:
app: core-service
spec:
replicas: 1
selector:
matchLabels:
app: core-service
template:
metadata:
labels:
app: core-service
spec:
containers:
- name: core-service
image: core-service:0.1.4-SNAPSHOT
ports:
- name: websecure
containerPort: 9463
livenessProbe:
httpGet:
port: 9463
scheme: HTTPS
path: /health
initialDelaySeconds: 10
IngressRoute2.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutetls
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`ejemplo.com`) && PathPrefix(`/tls`)
kind: Rule
services:
- name: core-service
port: 9463
scheme: https
tls:
certResolver: default
从文档中
默认情况下,TLS路由器将终止TLS连接。但是,可以指定直通选项来设置请求是否应“按原样”转发,同时保持所有数据加密。
在您的情况下,需要启用SSL直通,因为pod需要HTTPS流量。
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutetls
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`ejemplo.com`) && PathPrefix(`/tls`)
kind: Rule
services:
- name: core-service
port: 9463
scheme: https
tls:
certResolver: default
passthrough: true
我是Kubernetes平台的新手,尝试启用部署在Kubernetes平台上的tomcat web app的HTTPS安全连接。我对舱单感到困惑。与部署、服务和入口控制器相关的yml。 那么,我是否也必须在部署(在端口:-containerPort:8080)服务(如端口:-端口:80 targetPort:8080协议:TCP名称:http)和入口(在后端:serviceName:tomcat
我只是在本地mac上使用mini kube设置kubernetes。 创建了一个类型为NodePort的服务,并且能够使用url
我正在研究如何在Nginx入口之间实现https安全连接- 以下是我的场景: 来自internet的客户端- 所以我的问题是,如何保护入口控制器和pod之间的通信,以便对通信进行端到端加密?我是否需要自己的证书颁发机构才能做到这一点?如果有,是否有任何开源解决方案可以像Cert manager一样处理证书管理?
是否可以在库伯内特斯中配置入口控制器,仅当传入请求的标头具有特定值时才将HTTP请求路由到服务? 实例 带有以下标头的HTTP请求 应该转发给服务1 带有以下标头的HTTP请求 应该被阻止 如果可能的话,你能详细一点或指向一些文档,因为我找不到这种用例的文档吗
我想了解在我想在GCP上使用一个HTTPS负载平衡器来服务bucket中的一些静态内容和Kubernetes上使用react前端和express后端组合的动态内容的场景中,我的负载平衡选项是什么。 附加信息: 我有一个在谷歌域名之外注册的域名 我想通过https提供所有内容 我不是从什么大事做起的。刚刚开始一个或多或少的业余爱好类型的项目,在不久的将来,它将吸引很少的流量 我不介意从app eng
我正在分布式模式下使用 cp-kafka-connect Helm chart 在 Google Kubernetes Engine (GKE) 上部署 Kafka-connect。 一个工作的Kafka集群与代理和动物园管理员已经在同一个GKE集群上运行。我知道我可以通过发送帖子请求到endpoint来创建连接器,一旦它可用。但是,Kafka连接容器进入运行状态,然后开始加载jar文件,直到所有