k8s-kubernetes入门-tomcat环境

网友投稿 917 2022-11-15

k8s-kubernetes入门-tomcat环境

k8s-kubernetes入门-tomcat环境

k8s-kubernetes入门-tomcat环境

​​1.命名空间​​​​2.选择tomcat镜像​​​​3.存储关系确定​​​​4.安装nfs服务​​​​5.yaml​​​​5.启动​​

1.命名空间

kubectl create namespace study

2.选择tomcat镜像

k8s是基于docker的,docker中是以images来管理的。 所以我们需要的环境是一个有tomcat容器的images,

docker search --no-trunc tomcat

我们使用stars最多的就行。

3.存储关系确定

-docker images到本地,然后用docker启动,进入容器,了解images的基本情况,然后确定哪些目录是需要永久保存的,哪些目录是临时保存的,哪些目录完全不需要。 这个和k8s的存储配置有关。

docker pull tomcat

接下来启动image,然后进入到image里面

docker run -d -p 18080:8080 tomcat

-d表示后台运行

-p进行端口映射表示将容器内8080端口映射到主机的18080上面。

即请求主机的18080端口就是请求容器内的8080端口。

tomcat是images的名字,如果是latest那么可以不写,否则需要

tomcat:tag

docker exec -it d925784f0a /bin/bash

exec是执行命令/bin/bash -it表示有交互、前台 d925784f0a是images启动实例。

docker通过dockerfile定义images,通过build将dockerfile打包成images;images通过docker run启动运行实例。即可以这样理解: dockerfile是人机交互的容器描述,images是容易静态持久,也是主要传播方式,运行实例是真正访问对象。

类似java: .java .class runtime

接下来我们查看文件目录

对于tomcat 我们一般之关系两个目录:

1.logs

2.webapps

当然,可能还有一个bin目录,但是一般需要用到bin目录进行重启时,直接重启整个容器即可。

logs目录

webapps目录

exit

退出。 因为我们使用nfs的存储方式,且先只测试logs目录。 在主机上创建/userdata/testtomcatlog目录,将主机目录和容器内目录进行映射。

4.安装nfs服务

yum install -y rpcbindyum install -y nfs-utils

上述所有的k8s的节点都需要安装,不管是master还是node -安装成功后,在共享目录主机(哪个主机的目录需要被共享就是哪个主机)中创建共享目录。 然后在共享目录主机上配置

vi /etc/exports

# 共享目录 请求源(可以是IP,通配符,域名等)(读写权限,文件所属权限)/userdata/testtomcatlog *(rw,no_root_squash)

nfs配置详细信息见​​​kunbernetes-基于NFS的存储​​ 然后重启服务

注意:启动有先后顺序,先启动rpcbind,后启动nfs

systemctl stop rpcbindsystemctl stop nfssystemctl restart rpcbindsystemctl restart nfs

验证: 在共享目录的其他主机(非同一台机器) 上执行

showmount -e 共享主机ip

5.yaml

新建文件:

touch tomcat-study.yml

apiVersion: v1kind: Podmetadata: name: tomcat-study namespace: study labels: mytomcat: studyspec: containers: - name: tomcat image: tomcat imagePullPolicy: IfNotPresent command: ["/usr/local/tomcat/bin/catalina.sh","run"] #表示后面的命令都是基于workDir的,与dockerfile中的workdir一样 workingDir: /usr/local/tomcat/ volumeMounts: #name需要与volumes下的name相同 - name: tomcat-log #mountPath需要与容器内的目录对应 mountPath: /usr/local/tomcat/logs/ readOnly: false ports: - name: tomcat-80 containerPort: 80 hostPort: 10080 protocol: TCP - name: tomcat-8080 containerPort: 8080 hostPort: 18080 protocol: TCP - name: tomcat-443 containerPort: 443 hostPort: 10443 protocol: TCP env: - name: ORACLE_HOME value: oracle resources: limits: cpu: 500m memory: 500Mi requests: cpu: 200m memory: 50Mi livenessProbe: tcpSocket: port: 80 initialDelaySeconds: 180 timeoutSeconds: 30 periodSeconds: 600 volumes: - name: tomcat-log nfs: #server是共享目录主机的ip server: 10.0.228.93 #path需要与共享的目录对应 path:

5.启动

kubectl apply -f tomcat-study.yml

查看pod

kubectl get pods -n study

查看详细信息

kubectl describe pod tomcat-study -n study

启动成功后,就可以访问node主机的映射端口,进而访问tomcat的管理项目.(因为我们没有进行service管理,即kube-proxy实际上还没有参与到集群管理中,所以需要访问实际启动images的node)

然后去共享目录主机上查看日志

这里的日志并不是实时刷新的,比如我们在浏览器上刷新下,那么实际上需要稍微等待一段时间,日志中才能刷出来。

至此,一个基于nfs的pod就被我们创建成功了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot 集成sleuth
下一篇:MyBatis反向生成Example类的使用方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~