我有一个超级简单的Java库伯内特斯Tomcat应用程序在库伯内特斯内部运行,我用在minikube上运行的JVM Jolokia代理安装了它。我正在尝试配置我的库伯内特斯部署,以便我可以在容器外部访问Jolokiaendpoint。当我试图从我的minikube IP上的容器外部访问http://127.0.0.1/jolokia/versionendpoint时,我收到一个连接被拒绝。
我已经通过CATALINA_OPTS变量设置了Jolokia代理,并将其设置为在端口8778上运行,并在Dockerfile中公开了8778。我已经登录到容器,可以确认只要我在容器内就可以访问Jolokia代理。
FROM tomcat:8.0-alpine
ADD sample.war /usr/local/tomcat/webapps/
#ADD jolokia.war /usr/local/tomcat/webapps/
RUN mkdir /home/jolokia/
ADD jolokia-jvm-1.7.1.jar /home/jolokia/javaagent.jar
ENV CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/jolokia/javaagent.jar=port=8778"
RUN apk --no-cache add curl
EXPOSE 8080
EXPOSE 8778
CMD ["catalina.sh", "run"]
接下来,在我的Kube部署中,我指定设置一个nodePort来将8778映射到端口30087;当我拔出我的minikube IP并通过http://minikube-IP:30087/jolo KIA/version访问它时,我一直得到拒绝连接。这是我的部署:
---
apiVersion: v1
kind: Service
metadata:
labels:
app: sample-tomcat
name: sample-tomcat
spec:
type: NodePort
ports:
- name: tomcat-port
port: 8080
nodePort: 30088
- name: jolokia-port
port: 8778
nodePort: 30087
selector:
app: sample-tomcat
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample-tomcat
labels:
app: sample-tomcat
spec:
selector:
matchLabels:
app: sample-tomcat
replicas: 1
template:
metadata:
labels:
app: sample-tomcat
spec:
containers:
- name: sample-tomcat
image: <redacted>/sampleapp:latest
ports:
- containerPort: 8080
- containerPort: 8778
Jolokia 代理在我的容器内工作,但是如何在容器外部访问它?
我需要将 Jolokia 代理主机设置为 0.0.0.0,因为它未在CATALINA_OPTS变量中使用正确的 IP。
ENV CATALINA_OPTS="$CATALINA_OPTS javaagent:/home/jolokia/javaagent.jar=port=8778,host=0.0.0.0"
名称:示例-服务 命名空间:默认 标签:run=load-balancer-example 注释: 选择器:run=load-balancer-example 类型:nodeport IP:10.108.214.162 端口:9090/tcp 目标端口:9090/tcp 节点端口:31105/tcp endpoint:192.168.1.23:9090,192.168.1.24:9090 会话关联
下列服务正在运行: 返回错误 重新构建URL到:http://localhost:8080/ 正在尝试127.0.0.1... 连接到127.0.0.1端口8080失败:连接被拒绝 连接到本地主机端口8080失败:连接被拒绝 关闭连接0卷:(7)无法连接到本地主机端口8080:连接被拒绝 我使用以下指南https://github.com/kubernetes/kubernetes/tree/ma
我正试图调查和学习更多关于库伯内特斯的知识,我遵循了指南https://blog.hazelcast.com/deploy-monitor/在我的kubernetes集群中安装hazelcast监视器。 如果我看到kubernetes仪表板,它有2个部署、3个pod和my-service为绿色。 运行此: 但当我跑的时候 它打开浏览器,如果我访问: 我有一个404。我做错了什么?
当我执行时 kubectl代理 它为我提供了o/p:开始在虚拟机上的127.0.0.1:8001上提供服务 我想在主机上看到仪表板,这给我带来了问题。 192 168 113 8001 api命名空间库贝系统服务https kubernetes仪表板代理 有什么问题,我没明白。我是库伯内特斯的新手。谢谢
在我的 OVH 托管 Kubernetes 集群中,我正在尝试公开 NodePort 服务,但看起来无法通过以下方式
我在Google Container Engine上部署了一个容器,它运行良好。现在,我想公开它。 这个应用程序是一个侦听2个端口的服务。使用kubectl公开部署,我创建了2个负载均衡器,每个端口一个。 我制作了两个负载平衡器,因为kubectl expose命令似乎不允许使用多个端口。虽然我在kubectl上将其定义为type=LoadBalancer,但一旦在GKE上创建了它们,它们就被定义