标签:kubectl service tomcat 部署 demo 宿主机 pod K8S
注意,以下 在k8s master节点执行:
1. 使用dockerfile方式构建自己应用的tomcat镜像(构建完成即可,不需要使用docker启动)
https://blog.csdn.net/u013286936/article/details/98457286
我这里创建的镜像名称为:demo-tomcat,tag为:1.0
注意:由于我没有搭建自己的镜像仓库,所有在k8s启动pod时,调度的工作节点拉取不到镜像。会出现以下错误:
可以采用离线导入的方式先将镜像拉取到所有node节点。
https://blog.csdn.net/u013286936/article/details/98456976
2. 部署tomcat
创建一个yaml文件:jvmdemo-tomcat.yml
yaml文件格式定义: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-tomcat
labels:
app: demo
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: tomcat
image: demo-tomcat:1.0
ports:
- containerPort: 80
3. 部署pod
3.1 部署:
kubectl create -f jvmdemo-tomcat.yml
3.2 查看pod状态,running运行成功:
kubectl get pods
3.3 查看pod详细信息:
kubectl describe pod demo-tomcat-7f6bb4d7cd-fdbzw
如果pod状态为:CrashLoopBackOff,则可通过以下命令查看pod日志:
kubectl logs <podName>
当pod状态为running时,表示pod运行成功。
可以通过:
kubectl get pods -o wide查看到pod的ip地址。
然后在宿主机内,可以用过 curl测试tomat是否发布成功。
但是此时在宿主机外部还不能访问到tomcat。
4. 部署service
4.1编辑jvmdemo-service.yml
将pod端口和node port绑定,这样就可以在宿主机外部,通过宿主机IP:port访问pod容器,以下示例,暴露的宿主机端口为:30880。 注意selector.app为上面yml文件中的metadata.lables.name:
apiVersion: v1
kind: Service
metadata:
name: jvmdemo-service
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
selector:
app: demo
4.2 部署service:
kubectl create -f jvmdemo-service.yml
查看service:
kubectl get srv
此时通过master,node的ip均可以访问到pod:
http://192.168.137.89:30080/
http://192.168.137.88:30080/
标签:kubectl,service,tomcat,部署,demo,宿主机,pod,K8S 来源: https://blog.csdn.net/u013286936/article/details/98460623
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。