国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

K8S | Service服務發(fā)現(xiàn)

來源: 責編: 時間:2023-08-05 11:44:46 5319觀看
導讀一、背景在微服務架構中,這里以開發(fā)環(huán)境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網(wǎng)關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環(huán)境或者生產(chǎn)「Pro」環(huán)境,出于安全或者環(huán)境隔離性來考

一、背景

在微服務架構中,這里以開發(fā)環(huán)境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網(wǎng)關、注冊中心、配置中心等相關服務,可以被集群外部訪問;BNG28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

對于測試「Tes」環(huán)境或者生產(chǎn)「Pro」環(huán)境,出于安全或者環(huán)境隔離性來考慮,在正常情況下只會開放網(wǎng)關服務,而「注冊、配置」中心并不會對外暴露;BNG28資訊網(wǎng)——每日最新資訊28at.com

對于架構中的其它業(yè)務服務一般不會對外開放,在K8S集群內(nèi)部服務間是可以正常通信的,對于「Dev」環(huán)境來說,研發(fā)會使用「注冊、配置」中心,網(wǎng)關是系統(tǒng)的訪問入口;BNG28資訊網(wǎng)——每日最新資訊28at.com

在K8S集群中,通過Service組件,可以快速簡單的實現(xiàn)服務發(fā)現(xiàn)和負載均衡;BNG28資訊網(wǎng)——每日最新資訊28at.com

二、Service組件

1、簡介

在K8S集群中是通過Pod組件來部署應用服務,Deployment組件實現(xiàn)Pod編排管理,Service組件實現(xiàn)應用的訪問;BNG28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

【Pod】自身的特點是臨時的,使用過后直接拋棄的實體,這樣在Pod創(chuàng)建和銷毀的狀態(tài)中,會導致IP地址發(fā)生變化,即無法使用固定的IP進行應用訪問;BNG28資訊網(wǎng)——每日最新資訊28at.com

【Deployment】控制器通過管理ReplicaSet間接實現(xiàn)Pod管理,比如發(fā)布方式,更新和回滾策略,維持Pod副本數(shù)量,對應用進行快速的編排,但是并沒有涉及應用的訪問;BNG28資訊網(wǎng)——每日最新資訊28at.com

【Service】是將運行在一個或一組Pod上的網(wǎng)絡應用程序公開為網(wǎng)絡服務的方法,可以在不修改現(xiàn)有應用程序的情況下,使用服務發(fā)現(xiàn)機制訪問到該應用;BNG28資訊網(wǎng)——每日最新資訊28at.com

基于Pod、Deployment、Service三個組件的協(xié)作,同一個應用的部署腳本可以在開發(fā)、測試、生產(chǎn)不同環(huán)境中復用;BNG28資訊網(wǎng)——每日最新資訊28at.com

2、基礎語法

這里提供一個簡單的【Service】語法做參考;BNG28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

需要注意的是:在該腳本中沒有指定服務類型即ServiceType,默認采用的是ClusterIP,通過集群的內(nèi)部IP暴露服務,選擇該值時服務只能夠在集群內(nèi)部訪問;BNG28資訊網(wǎng)——每日最新資訊28at.com

三、內(nèi)部服務發(fā)現(xiàn)

1、Pod創(chuàng)建

基于【Deployment】組件,創(chuàng)建「auto-serve」應用;BNG28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: apps/v1kind: Deploymentmetadata:  name: serve-deployment  labels:    app: auto-servespec:  replicas: 1  selector:    matchLabels:      app: auto-serve  template:    metadata:      labels:        app: auto-serve    spec:      containers:        - name: auto-serve          image: auto-serve:latest          imagePullPolicy: Never          ports:            - containerPort: 8082              name: auto-serve-port

執(zhí)行創(chuàng)建命令BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl apply -f serve-deployment.yaml

2、Service創(chuàng)建

簡單的腳本文件:app-service.yaml;BNG28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: v1kind: Servicemetadata:  name: app-servicespec:  selector:    app: auto-serve  ports:  - name: app-service-port    protocol: TCP    port: 8082    targetPort: auto-serve-port

創(chuàng)建【Service】BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl apply -f app-service.yaml

查看【Service】,可以使用命令行或者界面;BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl describe svc app-service

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

刪除【Service】BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl delete -f app-service.yaml

3、內(nèi)部訪問

在上面已經(jīng)說明,當Type不指定時采用的是ClusterIP,只能在集群內(nèi)部訪問,集群外部的網(wǎng)絡是無法訪問的;BNG28資訊網(wǎng)——每日最新資訊28at.com

在【auto-client】服務中提供一段訪問【auto-serve】接口的代碼,并制作鏡像【auto-client:3.3.3】,完成部署后查看日志打印;BNG28資訊網(wǎng)——每日最新資訊28at.com

@Componentpublic class HttpServiceJob {    private static final Logger LOG = LoggerFactory.getLogger(HttpServiceJob.class.getName()) ;    private static final String SERVER_NAME = "http://app-service:8082/serve";    private static final String SERVER_IP = "http://10.103.252.94:8082/serve";    /**     * 每30秒執(zhí)行一次     */    @Scheduled(fixedDelay = 30000)    public void systemDate () {        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();        factory.setReadTimeout(3000);        factory.setConnectTimeout(6000);        RestTemplate restTemplate = new RestTemplate(factory);        try {            Map<String, String> paramMap = new HashMap<>();            String result = restTemplate.getForObject(SERVER_NAME, String.class, paramMap);            LOG.info("service-name-resp::::" + result);        } catch (Exception e) {            e.printStackTrace();        }        try {            Map<String, String> paramMap = new HashMap<>();            String result = restTemplate.getForObject(SERVER_IP, String.class, paramMap);            LOG.info("service-ip-resp::::" + result);        } catch (Exception e) {            e.printStackTrace();        }    }}

在代碼中通過服務名:端口和IP:端口都可以正常訪問,在Pod中查看兩個應用的日志,請求和響應都正常;BNG28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

四、外部服務發(fā)現(xiàn)

1、NodePort類型

指定類型為NodePort的腳本:app-np-service.yaml;BNG28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: v1kind: Servicemetadata:  name: app-np-servicespec:  type: NodePort  selector:    app: auto-serve  ports:    - protocol: TCP      port: 8082      targetPort: 8082      nodePort: 30010

創(chuàng)建【Service】BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl apply -f app-np-service.yaml

使用NodePort類型,K8S控制平面會在指定的范圍內(nèi)分配端口,如果需要特定的端口號可以指定nodePort字段中的值,但是該類型需要自己設置負載均衡解決方案;BNG28資訊網(wǎng)——每日最新資訊28at.com

2、LoadBalancer類型

指定類型為LoadBalancer的腳本:app-lb-service.yaml;BNG28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: v1kind: Servicemetadata:  name: app-lb-servicespec:  type: LoadBalancer  selector:    app: auto-serve  ports:    - protocol: TCP      port: 8082      targetPort: 8082

創(chuàng)建【Service】BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl apply -f app-lb-service.yaml

查看【Service】BNG28資訊網(wǎng)——每日最新資訊28at.com

在查看「app-lb-service」時,值得注意一下Endpoints的字段屬性,這里就是Pod選擇器選中的Pod;BNG28資訊網(wǎng)——每日最新資訊28at.com

kubectl get svc app-lb-service -o wideNAME             TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE     SELECTORapp-lb-service   LoadBalancer   10.111.65.220   localhost     8082:30636/TCP   6m49s   app=auto-servekubectl describe svc app-lb-serviceName:                     app-lb-serviceNamespace:                defaultLabels:                   <none>Annotations:              <none>Selector:                 app=auto-serveType:                     LoadBalancerIP Family Policy:         SingleStackIP Families:              IPv4IP:                       10.111.65.220IPs:                      10.111.65.220LoadBalancer Ingress:     localhostPort:                     <unset>  8082/TCPTargetPort:               8082/TCPNodePort:                 <unset>  30636/TCPEndpoints:                10.1.0.160:8082,10.1.0.161:8082,10.1.0.162:8082Session Affinity:         NoneExternal Traffic Policy:  ClusterEvents:                   <none>kubectl get pods -o wideNAME                               READY   STATUS    RESTARTS   AGE   IP           NODE          serve-deployment-f6f6c5bbd-9qvgr   1/1     Running   0          39m   10.1.0.162   docker-desktopserve-deployment-f6f6c5bbd-w7nj2   1/1     Running   0          39m   10.1.0.161   docker-desktopserve-deployment-f6f6c5bbd-x7v4d   1/1     Running   0          39m   10.1.0.160   docker-desktop

圖片圖片BNG28資訊網(wǎng)——每日最新資訊28at.com

五、參考源碼

文檔倉庫:https://gitee.com/cicadasmile/butte-java-note腳本倉庫:https://gitee.com/cicadasmile/butte-auto-parent

本文鏈接:http://m.rrqrq.com/showinfo-26-88-0.htmlK8S | Service服務發(fā)現(xiàn)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Golang 中的 io 包詳解:組合接口

下一篇: SpringBoot中使用Cache提升接口性能詳解

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
亚洲欧洲视频| 欧美日韩国产一二三| 亚洲欧美一级二级三级| 成人久久18免费网站麻豆 | a在线欧美一区| 成人一级视频在线观看| 国产99久久精品| 国产成人精品一区二| 成人黄页毛片网站| 97久久超碰精品国产| 91丨porny丨蝌蚪视频| 你懂的成人av| 亚洲黄网站黄| 久久久久99| 欧美三日本三级三级在线播放| 精品视频色一区| 精品国产百合女同互慰| 国产三级精品三级在线专区| 亚洲妇女屁股眼交7| 久久久亚洲精品石原莉奈 | 国产精品66部| 亚洲猫色日本管| 欧美乱熟臀69xxxxxx| 欧美三级视频| 全部av―极品视觉盛宴亚洲| 久久亚洲精精品中文字幕早川悠里 | 国产精品18久久久久久久久| 日日夜夜免费精品视频| 人人爽香蕉精品| 国产成人精品免费看| 91啪亚洲精品| 夜夜精品视频| 欧美探花视频资源| 精品播放一区二区| 亚洲激情图片qvod| 久久99久久精品欧美| 亚洲麻豆视频| 在线国产电影不卡| 久久久久国产精品人| 亚洲一区二区五区| 国产v综合v亚洲欧| 99xxxx成人网| 日韩一区二区三区精品视频| 亚洲人成小说网站色在线 | 亚洲精品影院| 在线不卡一区二区| 国产精品夫妻自拍| 久久狠狠亚洲综合| 国产精品二区在线| 欧美片网站yy| 亚洲天堂av一区| 国产很黄免费观看久久| 99热这里只有精品8| 欧美电视剧在线观看完整版| 亚洲在线观看免费视频| 成人av在线影院| 久久青青草综合| 国产女人水真多18毛片18精品视频| 日韩精品色哟哟| 韩日精品在线| 精品久久久久久无| 日韩av在线播放中文字幕| 欧美日韩国产探花| 欧美一区二区美女| 五月婷婷久久丁香| 激情欧美丁香| 精品国产一区二区三区久久影院| 日韩和欧美一区二区| 影音先锋久久| 久久精品网站免费观看| 国内精品久久久久影院色 | 久久免费国产精品| 精品一区二区三区久久| 亚洲一区欧美激情| 国产精品私房写真福利视频| 国产成人综合网| 在线视频国内自拍亚洲视频| 一区二区三区精品视频在线| 欧美一区久久| 欧美mv日韩mv国产| 久草中文综合在线| 色婷婷亚洲精品| 亚洲成人第一页| 99香蕉国产精品偷在线观看| 久久久精品欧美丰满| 成人综合婷婷国产精品久久蜜臀 | 欧美久久高跟鞋激| 青青草国产精品亚洲专区无| 在线综合视频| 一区二区在线观看视频在线观看| 国产在线日韩| 国产精品久久久久9999吃药| 欧美国产综合视频| 国产亚洲欧美中文| 91小视频免费观看| 日本一区二区综合亚洲| 99久久免费国产| 国产喂奶挤奶一区二区三区| 97精品国产露脸对白| 久久精品视频在线看| 欧美一区高清| 国产精品色哟哟| 一区视频在线看| 亚洲欧洲另类国产综合| 狠狠爱综合网| 一区二区三区小说| 欧美亚洲免费高清在线观看| 亚洲欧美日韩精品久久久久| 伊人久久久大香线蕉综合直播 | 伊伊综合在线| 艳妇臀荡乳欲伦亚洲一区| 亚洲一区二区免费看| 三级亚洲高清视频| 欧美日韩精品欧美日韩精品一| 国产做a爰片久久毛片| 欧美一区二区三区在线观看视频| 国产a精品视频| 国产日韩欧美亚洲| 99国产精品自拍| 亚洲大片在线观看| 欧美日韩国产123区| 99re这里只有精品首页| 国产精品女主播av| 亚洲免费综合| 国产精品一区二区三区乱码| 久久精品视频一区二区| 亚洲视频www| 经典三级一区二区| 国产无人区一区二区三区| 亚洲精美视频| 久久99深爱久久99精品| 亚洲国产毛片aaaaa无费看| 久久这里只有| fc2成人免费人成在线观看播放| 国产精品久久久爽爽爽麻豆色哟哟| 国产日韩视频| 国产精品性做久久久久久| 中文幕一区二区三区久久蜜桃| 国产精品免费在线| 风间由美一区二区三区在线观看| 国产精品妹子av| 欧美在线free| 国产精品xxx在线观看www| 日韩精品电影一区亚洲| 久久香蕉国产线看观看99| 国产精品久久777777毛茸茸| 国产精品 日产精品 欧美精品| 中文字幕在线视频一区| 欧美亚洲国产一卡| 欧美日韩综合久久| 精品亚洲国内自在自线福利| 欧美韩国日本综合| 欧美色视频在线| 雨宫琴音一区二区在线| 国产一区二区三区黄视频 | 欧美在线不卡视频| 国内自拍视频一区二区三区| 精品一区二区在线观看| ...xxx性欧美| 精品精品欲导航| 久久婷婷影院| 精品99视频| 国产**成人网毛片九色| 五月激情综合色| 国产精品久久久久久亚洲伦| 欧美一区日韩一区| 久久精品电影| 在线精品亚洲一区二区| eeuss鲁片一区二区三区| 日本91福利区| 亚洲高清在线精品| 国产精品久久久久久久久免费丝袜| 欧美日韩一区二区在线视频| 国产伦精品一区二区三区高清版| 99久久精品久久久久久清纯| 精品一区二区三区免费播放| 亚洲一级二级在线| 中文字幕一区在线观看| 久久天堂av综合合色蜜桃网| 欧美日韩国产综合草草| 日本精品一级二级| 一区二区三区欧美在线| 国产精品第十页| 91一区二区三区在线播放| 国产 欧美在线| 国产在线精品一区二区夜色 | 国内精品久久国产| yourporn久久国产精品| 国产成人午夜精品5599| 久久激情综合网| 美女视频黄 久久| 亚洲电影在线免费观看| 亚洲黄网站在线观看| 中文字幕制服丝袜一区二区三区 | 久久久水蜜桃| 91精品办公室少妇高潮对白| 美女精品在线观看| 久久亚洲图片| 色屁屁一区二区| 欧美色偷偷大香|