react 前端框架如何驱动企业数字化转型与创新发展
917
2022-11-15
k8s-kubernetes入门-tomcat环境
k8s-kubernetes入门-tomcat环境
1.命名空间2.选择tomcat镜像3.存储关系确定4.安装nfs服务5.yaml5.启动
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~