我是Kubernetes平台的新手,尝试启用部署在Kubernetes平台上的tomcat web app的HTTPS安全连接。我对舱单感到困惑。与部署、服务和入口控制器相关的yml。
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-webapp
spec:
selector:
matchLabels:
app: tomcat-webapp
replicas: 1
template:
metadata:
labels:
app: tomcat-webapp
spec:
containers:
- name: tomcat-webapp
image: registry.central/*****
imagePullPolicy: Always
securityContext:
runAsUser: 13113
runAsGroup: 602
ports:
- containerPort: 8080
env:
- name: JAVA_OPTS
value: "-Xms128M -Xmx256M -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
- name: CATALINA_OPTS
value: "-Djavax.net.ssl.trustStore=/opt/apache-tomcat-8.5.32/webapps/ROOT/tomcat.jks -Djavax.net.ssl.trustStorePassword=****"
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-webapp
labels:
app: tomcat-webapp
spec:
ports:
- port: 80
targetPort: 8080
#nodePort: 30010
protocol: TCP
name: http
selector:
app: tomcat-webapp
---
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat-webapp
spec:
rules:
- host: "tomcat-webapp.apps.net"
http:
paths:
- path: /
backend:
serviceName: tomcat-webapp
servicePort: 80
tls:
- hosts:
# dont forget to update this url too
- "tomcat-webapp.apps.net"
那么,我是否也必须在部署(在端口:-containerPort:8080)服务(如端口:-端口:80 targetPort:8080协议:TCP名称:http)和入口(在后端:serviceName:tomcat webapp servicePort:80)中指定端口8443(Https端口)?
保持简单:
apiVersion: v1
kind: Service
metadata:
name: tomcat-webapp
labels:
app: tomcat-webapp
spec:
ports:
- port: 8080
selector:
app: tomcat-webapp
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat-webapp
spec:
rules:
- host: "tomcat-webapp.apps.net"
http:
paths:
- path: /
backend:
serviceName: tomcat-webapp
servicePort: 8080
tls:
- hosts:
- "tomcat-webapp.apps.net"`
据我从部署配置中了解,Java应用程序运行在端口8080上,需要https流量。这不适用于上述入口配置-您的Java应用程序应该侦听端口8080,并期望http流量。
如果确实希望Java应用程序侦听HTTPS,可以通过以下方式配置入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat-webapp
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
... # the rest is the same
我只是在本地mac上使用mini kube设置kubernetes。 创建了一个类型为NodePort的服务,并且能够使用url
希望你们都好, 我目前正在尝试将awx操作符部署到Kubernetes集群上,但在从集群外部访问该服务时遇到了一些问题。 目前,我已设置了以下服务: 我确实设置了一个名为
我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他
我在windows 10中创建了两个在我的minikube环境中运行的POD。一个POD带有Spring boot应用程序容器,另一个POD带有mysql容器。对于Spring boot应用程序,服务类型为nodePort,对于MYSQL pod,服务类型为club sterIP。这意味着Mysql pod只需要在集群内部进行通信。但是对于Spring boot应用程序,需要从浏览器访问,所以我配
我已经使用kops在AWS上部署了Kubernetes群集,并且我能够使用带有负载平衡器的服务公开我的POD: 然而,我无法通过指定服务来实现它。spec.externalIPs(我的主节点的公共IP)。 我允许指定端口的流量进入,并使用https://kubernetes.io/docs/concepts/services-networking/service/#external-ips作为文档
我在Kubernetes是个新手。我想知道在kubernetes环境中最好的生产部署场景是什么。 在过去的学派中,我习惯于将Web服务器(例如Nginx或Apache)放在DMZ层,而将其放在其他层(我们称之为层)。这样,只有web服务器在DMZ上,恶意攻击只能在web服务器VM上进行。 据我所知,K8S部署不再需要这种方法;这是因为K8S自己处理网络、吊舱和流量。所以我在考虑最确定的部署方案。