国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S暴露pod內(nèi)多個(gè)端口

這篇具有很好參考價(jià)值的文章主要介紹了K8S暴露pod內(nèi)多個(gè)端口。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?K8S暴露pod內(nèi)多個(gè)端口

一、背景

公司統(tǒng)一用的某個(gè)底包跑jar服務(wù),只暴露了8080端口?

K8S暴露pod內(nèi)多個(gè)端口,eureka,云原生

二、需求

由于有些服務(wù)在啟動(dòng)jar服務(wù)后,會(huì)啟動(dòng)多個(gè)端口,除了8080端口,還有別的端口需要暴露,我這里就還需要暴露9999端口。

注:解決辦法其實(shí)是可以直接改底包就好了,在底包中多暴露幾個(gè)端口,但是我這邊因?yàn)闊o法改底包,所以只能通過下面的辦法解決。

三、解決辦法

我們平時(shí)在打版升級(jí)的過程中,會(huì)基于底包寫dockerfile來替換最新的jar包得到最終的鏡像,所以可以這個(gè)dockerfile中添加暴露9999端口,這樣同樣也可以增加容器端口暴露,如下

K8S暴露pod內(nèi)多個(gè)端口,eureka,云原生

$ cat dockerfile 
FROM 10.0.8.56/basis-images/basis:tomcat

ARG jar_name

RUN 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

四、實(shí)驗(yàn)在docker上跑容器,驗(yàn)證是否暴露出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-store

Login 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

實(shí)驗(yàn)發(fā)現(xiàn),端口暴露成功
容器8080端口隨機(jī)映射到了宿主機(jī)49154端口
容器9999端口隨機(jī)映射到了宿主機(jī)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-video
    qcloud-app: nsw-ai-video
  name: nsw-ai-video
  namespace: nsyai-test
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: nsw-ai-video
      qcloud-app: nsw-ai-video
  template:
    metadata:
      labels:
        k8s-app: nsw-ai-video
        qcloud-app: nsw-ai-video
    spec:
      containers:
      - name: nsw-ai-video
        image: 10.0.8.56/nsyai-test/nsw-ai-video:2023-07-28-15-40
        imagePullPolicy: Always
        livenessProbe:
          failureThreshold: 5
          initialDelaySeconds: 180
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 8080
          timeoutSeconds: 6
        readinessProbe:
          failureThreshold: 5
          initialDelaySeconds: 60
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 8080
          timeoutSeconds: 60
        resources:
          limits:
            cpu: 2000m
            memory: 2Gi
          requests:
            cpu: "1"
            memory: 512Mi
        ports:
        - containerPort: 8080
          name: image-port
          protocol: TCP
        - containerPort: 9999
          name: xxl-job-port
          protocol: TCP
      imagePullSecrets:
      - name: nsw-harbor-secret 

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

六、編寫svc.yaml

# cat svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nsw-ai-video
  namespace: nsyai-test
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: 8080-8080-tcp
    nodePort: 30083
    port: 8080
    protocol: TCP
    targetPort: 8080
  - name: 9999-9999-tcp
    nodePort: 30084
    port: 9999
    protocol: TCP
    targetPort: 9999
  selector:
    k8s-app: nsw-ai-video
    qcloud-app: nsw-ai-video
  type: NodePort

七、應(yīng)用配置清單

# 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

K8S暴露pod內(nèi)多個(gè)端口,eureka,云原生

總結(jié):

1、從上面可以發(fā)現(xiàn),在制作pod鏡像中EXPOSE暴露了兩個(gè)端口,這個(gè)是容器本身需要暴露的端口,在dp.yaml中配置了兩個(gè)containerPort,這個(gè)是pod中的容器需要暴露的端口,在svc.yaml中配置了nodePort,port,targetport,分別代表宿主機(jī)端口,service端口和容器端口。

? 好了,這就是K8S暴露pod內(nèi)多個(gè)端口的辦法了,如有問題可與博主一起交流討論!文章來源地址http://www.zghlxwxcb.cn/news/detail-621167.html

到了這里,關(guān)于K8S暴露pod內(nèi)多個(gè)端口的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s外部訪問pod內(nèi)部容器的端口-NodePort

    k8s外部訪問pod內(nèi)部容器的端口-NodePort

    Kubernetes的Pod IP和Cluster IP都只能在集群內(nèi)部訪問,而我們通常需要從外部網(wǎng)絡(luò)上訪問集群中的某些服務(wù),Kubernetes提供了下述幾種方式來為集群提供外部流量入口。 有一pod,里面有rabbitmq服務(wù),先想從外部通過ip:15672訪問MQ的管理員界面查看隊(duì)列消費(fèi)情況。 方法1(pod會(huì)重啟): 方法

    2023年04月23日
    瀏覽(26)
  • [云原生] K8s之pod控制器詳解

    [云原生] K8s之pod控制器詳解

    Pod 是 Kubernetes 集群中能夠被創(chuàng)建和管理的最小部署單元。所以需要有工具去操作和管理它們的生命周期,這里就需要用到控制器了。 Pod 控制器由 master 的 kube-controller-manager 組件提供,常見的此類控制器有 Replication Controller、ReplicaSet、Deployment、DaemonSet、StatefulSet、Job 和 CronJo

    2024年03月11日
    瀏覽(23)
  • 【云原生】深入掌握k8s中Pod和生命周期

    【云原生】深入掌握k8s中Pod和生命周期

    ? ? 個(gè)人主頁: 征服bug-CSDN博客 kubernetes專欄: kubernetes_征服bug的博客-CSDN博客? 1 什么是 Pod 2 Pod 基本操作 3 Pod 運(yùn)行多個(gè)容器 4 Pod 的 Labels(標(biāo)簽) 5 Pod 的生命周期 1 什么是 Pod 摘取官網(wǎng): Pod | Kubernetes 1.1 簡(jiǎn)介 ????????Pod 是可以在 Kubernetes 中 創(chuàng)建和管理的、最小的可部署的計(jì)

    2024年02月14日
    瀏覽(60)
  • 云原生 | k8s批量刪除Evicted/Terminating/Unknown Pods

    云原生 | k8s批量刪除Evicted/Terminating/Unknown Pods

    宿主機(jī)內(nèi)存被docker占滿導(dǎo)致,K8s集群pod處于Evicted?狀態(tài),清理內(nèi)存后處理Evicted和Terminating狀態(tài)的pod 1、在集群查詢pod狀態(tài),發(fā)現(xiàn)大量pod處于Evicted和Terminating狀態(tài) 2.使用kubectl中的強(qiáng)制刪除命令 3.刪除非正常的pod ?

    2024年02月08日
    瀏覽(20)
  • 【云原生|K8s系列第4篇】:實(shí)戰(zhàn)查看Pod和工作節(jié)點(diǎn)

    【云原生|K8s系列第4篇】:實(shí)戰(zhàn)查看Pod和工作節(jié)點(diǎn)

    本期文章是K8s系列第4篇,主要是實(shí)戰(zhàn)查看pod和工作節(jié)點(diǎn)。通過本期文章:我們將學(xué)習(xí)了解Kubernetes中的Pod和工作節(jié)點(diǎn),并且對(duì)已經(jīng)部署的應(yīng)用故障排除。 在前期的文章中,已經(jīng)介紹了一些云原生入門的知識(shí)及簡(jiǎn)單實(shí)戰(zhàn),感興趣的同學(xué)可以去我的云原生專欄中學(xué)習(xí),任意門:云

    2024年01月16日
    瀏覽(29)
  • 云原生Kubernetes:K8S常用服務(wù)端口

    目錄 一、理論 1.K8S常用服務(wù)端口號(hào) (1)K8S集群 表1?K8S集群端口 協(xié)議 端口號(hào) K8S集群 TCP 22 使用主機(jī)驅(qū)動(dòng)通過SSH進(jìn)行節(jié)點(diǎn)配置 TCP 53 集群DNS服務(wù) UDP 53 集群DNS服務(wù) TCP 2376 主機(jī)驅(qū)動(dòng)與Docker守護(hù)進(jìn)程通信的TLS端口 TCP 2379 etcd客戶端請(qǐng)求 TCP 2380 etcd節(jié)點(diǎn)通信 UDP 8472 Canal/Flannel VXLAN ove

    2024年02月10日
    瀏覽(33)
  • 云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)

    云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)

    Gitee-k8s學(xué)習(xí) 云原生實(shí)戰(zhàn)-kubernetes核心實(shí)戰(zhàn) Namespace是kubernetes系統(tǒng)中的一種非常重要資源,它的主要作用是用來實(shí)現(xiàn)多套環(huán)境的資源隔離或者多租戶的資源隔離 Pod可以認(rèn)為是容器的封裝,一個(gè)Pod中可以存在一個(gè)或者多個(gè)容器。 kubernetes很少直接控制Pod,一般都是通過Pod控制器來

    2024年02月03日
    瀏覽(165)
  • 【云原生-k8s】kubectl top pod 報(bào)錯(cuò):error: Metrics API not available

    ?? 博主簡(jiǎn)介 ????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開發(fā)者社區(qū)專家博主 ????阿里云開發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運(yùn)維交流社區(qū) 歡迎大家的加入!

    2023年04月09日
    瀏覽(25)
  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    在上一篇文章中,我們學(xué)習(xí)了針對(duì)容器設(shè)置啟動(dòng)時(shí)要執(zhí)行的命令和參數(shù)、定義相互依賴的環(huán)境變量、為容器設(shè)置環(huán)境變量,三種設(shè)置方式,本篇文章,我們將繼續(xù)學(xué)習(xí)數(shù)據(jù)的傳遞。 有兩種方式可以將 Pod 和 Container 字段傳遞給運(yùn)行中的容器: 環(huán)境變量 卷文件 這兩種呈現(xiàn) Pod

    2024年01月25日
    瀏覽(526)
  • 云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點(diǎn)、Node工作負(fù)載節(jié)點(diǎn)、Pod控制單元

    云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點(diǎn)、Node工作負(fù)載節(jié)點(diǎn)、Pod控制單元

    參考文章:kubernetes介紹 本章節(jié)主要介紹應(yīng)用程序在服務(wù)器上部署方式演變以及kubernetes的概念、組件和工作原理。 在部署應(yīng)用程序的方式上,主要經(jīng)歷了三個(gè)時(shí)代: 傳統(tǒng)部署:互聯(lián)網(wǎng)早期,會(huì)直接將應(yīng)用程序部署在物理機(jī)上 優(yōu)點(diǎn):簡(jiǎn)單,不需要其它技術(shù)的參與 缺點(diǎn):不能為

    2024年02月04日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包