今日来分享一下利用k8s来部署tomcat的教程。
主机列表:
master:192.168.153.100
node1:192.168.153.101
node2:192.168.153.102
这里不再叙述部署k8s方法,还没部署的朋友先移步出去部署好。
直接上方法:
1.建议先创建好namespace,这个是用来做资源隔离用的,如果不提前创建的话会用默认的,不利于管理。
kubectl create namespace tomcat
执行上条命令可以创建一个名称为“tomcat”的namespace
接下来创建资源控制器deployment
2.vim tomcat-deployment.yaml
# 指定Kubernetes API版本,Deployment资源属于apps/v1版本
apiVersion: apps/v1
# 定义资源类型为Deployment,用于管理Pod的部署和更新
kind: Deployment
# 元数据部分,定义Deployment的名称和命名空间
metadata:
# Deployment的名称,在命名空间内唯一标识此部署
name: tomcat-deployment
# 指定部署所在的命名空间,命名空间用于资源隔离
namespace: tomcat
# Deployment的规格定义
spec:
# 指定需要运行的Pod副本数量,这里设置为2个实例
replicas: 2
# 标签选择器,用于识别和管理由该Deployment创建的Pod
selector:
matchLabels:
# 匹配具有app=tomcat标签的Pod
app: tomcat
# Pod模板定义,用于创建新的Pod
template:
# Pod的元数据
metadata:
# 为Pod设置标签,这些标签会被selector.matchLabels使用
labels:
app: tomcat
# Pod的规格定义
spec:
# 容器列表,定义在Pod中运行的容器
containers:
# 第一个容器定义
- name: tomcat
# 使用的容器镜像,这里是华为云SWR仓库中的Tomcat 8.5版本镜像
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tomcat:8.5-jdk8
# 容器端口配置
ports:
# 端口定义
- name: http # 端口名称,可用于服务发现和监控
containerPort: 8080 # 容器内部暴露的端口号,Tomcat默认使用8080端口
# 添加资源请求和限制
resources:
requests:
memory: "512Mi" # 容器启动时请求的内存资源
cpu: "250m" # 容器启动时请求的CPU资源(250 milliCPU)
limits:
memory: "1024Mi" # 容器最大可使用的内存
cpu: "500m" # 容器最大可使用的CPU(500 milliCPU)
编写好后执行以下命令创建tomcat 的Pod
kubectl apply -f tomcat-deployment.yaml
如看到deployment.apps/tomcat-deployment created说明成功创建pod
3.执行以下命令显示你创建的pod
kubectl get pods -n tomcat # -n 指定命名空间,单独-A会得到全部的pod。

接下来我们再来创建service
4.vim tomcat-service.yaml
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
namespace: tomcat
spec:
selector:
app: tomcat
ports:
- name: http
targetPort: 8080
port: 8080
nodePort: 30080
type: NodePort
5.启动service
kubectl apply -f tomcat-service.yaml
6.查看启动的service
kubectl get service -n tomcat

7.进入容器
kubectl exec -it tomcat-deployment-7f56bbf454-hfqqn -c tomcat -n tomcat -- /bin/bash

8.复制目录进webapps
cp -R webapps.dist/* webapps/
9.查看pod跑在哪个节点上
kubecrl describe pod [your pod name] -n tomcat
我这里跑了2个Pod,分布在2个节点上。
10.访问验证
http://192.168.153.101:30080/
http://192.168.153.102:30080/ #我这里2个都可以访问,因为两个节点上都有pod
1万+

被折叠的 条评论
为什么被折叠?



