gpt4 book ai didi

docker - IP部署tomcat kubernetes

转载 作者:行者123 更新时间:2023-11-28 22:16:03 25 4
gpt4 key购买 nike

我需要使用我的节点 IP 和端口注册 tomcat。

我的问题是:

此时我运行命令:

kubectl run tomcat-pod --image=tomcat --port=80 --labels="name=tomcat-pod"

此时tomcat正在运行。

然后我相信像服务一样公开我的 tomcat 类型的 NodePort,它会改变我的 IP 注册,因为我知道我的服务器是用命令运行注册的?

或者使用容器中的 tomcat 向节点机器注册我的应用程序的正确方法是什么?

谢谢。

问候。

最佳答案

要实现您的目标并使 Tomcat 部署在节点机器上可用,请考虑使用 Service 类型 NodePortNode IP 地址上公开 Tomcat 应用服务器。

Tomcat 应用程序服务器实现创建 list 文件,确保删除以前的 Tomcat 部署:

kubectl delete deployment tomcat-pod

list 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-pod
spec:
selector:
matchLabels:
run: tomcat-pod
replicas: 1
template:
metadata:
labels:
run: tomcat-pod
spec:
containers:
- name: tomcat
image: tomcat:latest
ports:
- containerPort: 8080

在您的 K8s 集群中为 Tomcat 创建部署:

kubectl apply -f manifest_file.yaml

组合服务公开您的 Tomcat 容器端口(默认 8080):

apiVersion: v1
kind: Service
metadata:
name: tomcat-pod
labels:
run: tomcat-pod
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
run: tomcat-pod

创建服务:

kubectl apply -f manifest_file.yaml

检查您创建的服务属性:kubectl describe service tomcat-pod

Name:                     tomcat-pod
Namespace: default
Labels: run=tomcat-pod
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"run":"tomcat-pod"},"name":"tomcat-pod","namespace":"default"},"spec":{"port...
Selector: run=tomcat-pod
Type: NodePort
IP: XXX.XX.XX.XX
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 30218/TCP
Endpoints: XXX.XX.XX.XX:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

现在您可以通过节点 IP 地址访问您的 Tomcat 应用服务器。

请注意,NodePort 是从默认池 30000-32767 中随机选择的,并且此值对于集群中的每个节点都是唯一的。

关于docker - IP部署tomcat kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51717422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com