当前位置: 首页 > news >正文

青州市网站建设网站审核备案

青州市网站建设,网站审核备案,橙色企业网站源码,无锡教育论坛网站建设K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务,只暴露了8080端口 二、需求 由于有些服务在启动jar服务后,会启动多个端口,除了8080端口,还有别的端口需要暴露,我这里就还需要暴露9999端口。 注&a…

 K8S暴露pod内多个端口

一、背景

公司统一用的某个底包跑jar服务,只暴露了8080端口 

二、需求

由于有些服务在启动jar服务后,会启动多个端口,除了8080端口,还有别的端口需要暴露,我这里就还需要暴露9999端口。

注:解决办法其实是可以直接改底包就好了,在底包中多暴露几个端口,但是我这边因为无法改底包,所以只能通过下面的办法解决。

三、解决办法

我们平时在打版升级的过程中,会基于底包写dockerfile来替换最新的jar包得到最终的镜像,所以可以这个dockerfile中添加暴露9999端口,这样同样也可以增加容器端口暴露,如下

$ cat dockerfile 
FROM 10.0.8.56/basis-images/basis:tomcatARG jar_nameRUN rm -rf /usr/local/tomcat/*
ADD ./target/${jar_name}.jar /usr/local/tomcat
ADD ./start.sh /usr/local/tomcat
EXPOSE 9999
RUN chmod +x /usr/local/tomcat/start.sh$ docker build --build-arg jar_name=nsw-ai-video . -t 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40
$ docker push 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40

四、实验在docker上跑容器,验证是否暴露出8080和9999端口(10.0.8.56是我的harbor私有镜像仓库)

[ yukw @ docker-work01 10.0.8.59 ] ~
$ docker login 10.0.8.56
Username: yukw
Password: 
WARNING! Your password will be stored unencrypted in /home/yukw/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[ yukw @ docker-work01 10.0.8.59 ] ~
$ docker run -d -P --name nsyai-test 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40
Unable to find image '10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40' locally
2023-07-28-15-40: Pulling from nsyai-test/nsw-ai-video
a8c7037c15e9: Pull complete 
7f59206c4cb3: Pull complete 
d6593d2ee432: Pull complete 
47613084598b: Pull complete 
7ef22be88035: Pull complete 
edf70be6f818: Pull complete 
af72e686cb89: Pull complete 
376658e1b07e: Pull complete 
6991c8295d7f: Pull complete 
f0a023d2bec5: Pull complete 
9356db0572c6: Pull complete 
1cbc500b22f4: Pull complete 
2a8383c1d611: Pull complete 
962207b93da3: Pull complete 
9fdef278ff07: Pull complete 
8cc25cf21f3b: Pull complete 
Digest: sha256:e07a648e671746f4408565b2237584303cfdfb7d5a451adfa707dda3fc87d670
Status: Downloaded newer image for 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40
e11553520d6c4d94c71d8d11a699bd4d1c6df8202d4e1ec15b28ca1bcd21ff25
[ yukw @ docker-work01 10.0.8.59 ] ~
$ docker ps -a |grep 'nsyai-test'
e11553520d6c   10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40   "/usr/local/tomcat/s…"   8 seconds ago   Up 7 seconds   0.0.0.0:49154->8080/tcp, 0.0.0.0:49153->9999/tcp   nsyai-test
9fd678ee8eeb   10.0.8.56/nsyai-test/nsyai-web:2023-07-12-12-01      "/docker-entrypoint.…"   2 weeks ago     Up 2 weeks     80/tcp                                             my-nsyai-test
[ yukw @ docker-work01 10.0.8.59 ] ~
$ docker port e11553520d6c
8080/tcp -> 0.0.0.0:49154
9999/tcp -> 0.0.0.0:49153

实验发现,端口暴露成功
容器8080端口随机映射到了宿主机49154端口
容器9999端口随机映射到了宿主机49153端口

五、编写dp.yaml

# cat dp.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "63"description: video模块labels:k8s-app: nsw-ai-videoqcloud-app: nsw-ai-videoname: nsw-ai-videonamespace: nsyai-test
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: nsw-ai-videoqcloud-app: nsw-ai-videotemplate:metadata:labels:k8s-app: nsw-ai-videoqcloud-app: nsw-ai-videospec:containers:- name: nsw-ai-videoimage: 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40imagePullPolicy: AlwayslivenessProbe:failureThreshold: 5initialDelaySeconds: 180periodSeconds: 10successThreshold: 1tcpSocket:port: 8080timeoutSeconds: 6readinessProbe:failureThreshold: 5initialDelaySeconds: 60periodSeconds: 10successThreshold: 1tcpSocket:port: 8080timeoutSeconds: 60resources:limits:cpu: 2000mmemory: 2Girequests:cpu: "1"memory: 512Miports:- containerPort: 8080name: image-portprotocol: TCP- containerPort: 9999name: xxl-job-portprotocol: TCPimagePullSecrets:- name: nsw-harbor-secret 

containerPort是在pod控制器中定义的、pod中的容器需要暴露的端口 

六、编写svc.yaml

# cat svc.yaml 
apiVersion: v1
kind: Service
metadata:name: nsw-ai-videonamespace: nsyai-test
spec:externalTrafficPolicy: Clusterports:- name: 8080-8080-tcpnodePort: 30083port: 8080protocol: TCPtargetPort: 8080- name: 9999-9999-tcpnodePort: 30084port: 9999protocol: TCPtargetPort: 9999selector:k8s-app: nsw-ai-videoqcloud-app: nsw-ai-videotype: NodePort

七、应用配置清单

# kubectl apply -f dp.yaml
# kubectl apply -f svc.yaml# kubectl get svc -n nsyai-test
NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                         AGE
nsw-ai-gateway   ClusterIP   10.0.0.107   <none>        8080/TCP                        16d
nsw-ai-video     NodePort    10.0.0.119   <none>        8080:30083/TCP,9999:30084/TCP   3h25m
nsyai-pc-nginx   NodePort    10.0.0.185   <none>        80:30082/TCP                    16d

总结:

1、从上面可以发现,在制作pod镜像中EXPOSE暴露了两个端口,这个是容器本身需要暴露的端口,在dp.yaml中配置了两个containerPort,这个是pod中的容器需要暴露的端口,在svc.yaml中配置了nodePort,port,targetport,分别代表宿主机端口,service端口和容器端口。

  好了,这就是K8S暴露pod内多个端口的办法了,如有问题可与博主一起交流讨论!

http://www.bjxfkj.com.cn/article/107583.html

相关文章:

  • 移动网站如何做权重重庆招标投标公共资源交易中心
  • 织梦网站主页底竞价托管外包代运营
  • 买国外域名 网站wordpress多条件搜索插件
  • 怎么做网站导航外链做企业网站用php
  • 做网站英文怎么写厦门seo顾问
  • 石家庄市做网站济宁seo
  • 设计网站网站名称宁波网站推广联系方式
  • 开个小网站要怎么做万州区最新消息
  • 网站开发费用计入什么二级科目江西赣鄂皖路桥投资有限公司网站建设
  • 网站推广页面设计wordpress ghostjs
  • 好学校平台网站模板小程序开发平台到底哪家好
  • 做绿色产品的网站做网站一般需要哪些文件夹?
  • 建设银行E路航如何自动进入网站php一键建站
  • 怎样免费做书画网站建立网站需要备案吗
  • 网站建设与管理实训课程wordpress与商城
  • 中山网站优化wordpress 关键词设置
  • 中山市住房建设局网站加强网站建设 通知
  • 网站页面设计最宽可做多宽网站优化搜索排名
  • 在线做ppt模板下载网站wordpress主题 html5模板
  • 做网站怎么租个域名产品开发计划书
  • 阳江网站建设会议网站建设方案模板
  • 网站备案后可以改名吗网站全背景做多大
  • 山东网站建设公司哪家专业企业文化标语经典
  • 上海网站制作优化网站推广服务好公司排名
  • 网站网站制作网旅游最新资讯 新闻
  • 如何登陆建设银行信用卡网站制作微信公众号
  • 罗平县建设局网站网站模板下载模板下载安装
  • 郑州高端网站制作团队网站优化与SEO区别
  • 深圳网站设计公司发展历程免费网页设计制作网站
  • 网站设计公司苏州网上商城开发网站建设