国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

阿里工程師開發(fā)了一款免費(fèi)工具,提升Kubernetes應(yīng)用開發(fā)效率

新聞 開發(fā)工具
對(duì)于使用了Kubernetes作為應(yīng)用運(yùn)行環(huán)境的開發(fā)者而言,在同一個(gè)集群中我們可以使用命名空間(Namespace)快速創(chuàng)建多套隔離環(huán)境,在相同命名空間下,服務(wù)間使用Service的內(nèi)部DNS域名進(jìn)行相互訪問。

[[260829]]

對(duì)于使用了Kubernetes作為應(yīng)用運(yùn)行環(huán)境的開發(fā)者而言,在同一個(gè)集群中我們可以使用命名空間(Namespace)快速創(chuàng)建多套隔離環(huán)境,在相同命名空間下,服務(wù)間使用Service的內(nèi)部DNS域名進(jìn)行相互訪問。 基于Kubernetes強(qiáng)大的隔離以及服務(wù)編排能力,可以實(shí)現(xiàn)一套定義編排(YAML)多處部署的能力。

不過,一般來說Kubernetes使用的容器網(wǎng)絡(luò)與開發(fā)者的所在的辦公網(wǎng)絡(luò)直接并不能直接連通。 因此,如何高效的利用Kubernetes進(jìn)行服務(wù)間的聯(lián)調(diào)測(cè)試,成為在日常開發(fā)工作中一道繞不開的坎。本文我們就來聊一聊,如何加速基于Kubernetes的研發(fā)效率。

使用自動(dòng)流水線

為了能夠讓開發(fā)者能夠更快的將修改的代碼部署到集群測(cè)試環(huán)境中,一般來說我們會(huì)引入持續(xù)交付流水線,將代碼的編譯,鏡像的打包上傳以及部署通過自動(dòng)化的方式來解決。如下所示:

從一定程度上來說,這種方式可以避免開發(fā)人員進(jìn)行大量重復(fù)性的工作。但是,雖然整個(gè)過程自動(dòng)化了,但是開發(fā)人員也不得不每次進(jìn)行代碼變更之后都需要等待流水線的運(yùn)行。對(duì)于開發(fā)人員來說,每次代碼變更后等待流水線運(yùn)行或許已經(jīng)成為整個(gè)開發(fā)任務(wù)過程中體驗(yàn)最糟糕的部分。

打破網(wǎng)絡(luò)限制,本地聯(lián)調(diào)

理想狀態(tài)下是開發(fā)者可以直接在本地啟動(dòng)服務(wù),并且這個(gè)服務(wù)就可以無縫的和遠(yuǎn)程的kubernetes集群中的各個(gè)其它服務(wù)實(shí)現(xiàn)互相調(diào)用。需要解決兩個(gè)問題:

  • 我依賴了其它的服務(wù):運(yùn)行在本地的代碼可以直接通過podIP,clusterIP甚至是Kubernetes集群內(nèi)的DNS地址訪問到部署在集群中的其它應(yīng)用,如下圖左;
  • 其它的服務(wù)依賴了我:運(yùn)行在Kubernetes集群中的其它應(yīng)用可以在不做任何改變的情況下訪問我到運(yùn)行的本地的代碼,如下圖右。

要實(shí)現(xiàn)剛才說的兩種本地聯(lián)調(diào)方式,主要需要解決以下3個(gè)問題:

  • 本地網(wǎng)絡(luò)與Kubernetes集群網(wǎng)絡(luò)直接的連通問題
  • 在本地實(shí)現(xiàn)Kubernetes中內(nèi)部服務(wù)的DNS解析;
  • 如果將對(duì)集群中其它Pod訪問的流量轉(zhuǎn)移到本地;

云效開發(fā)者工具KT

為了簡(jiǎn)化在Kubernetes下進(jìn)行聯(lián)調(diào)測(cè)試的復(fù)雜度,云效在SSH隧道網(wǎng)絡(luò)的基礎(chǔ)上并結(jié)合Kubernetes特性構(gòu)建了一款面向開發(fā)者的免費(fèi)輔助工具KT(點(diǎn)擊前往下載),如下所示:

當(dāng)本地運(yùn)行的服務(wù)C’希望能夠直接訪問集群中default命名空間下的Service A和Service B時(shí),運(yùn)行如下命令:

  1. $ ktctl -namespace=default 

KT會(huì)自動(dòng)在集群中部署SSH/DNS代理容器,并構(gòu)建本地到Kubernetes集群的虛擬專用網(wǎng)絡(luò)并通過DNS代理實(shí)現(xiàn)集群服務(wù)DNS域名解析,在運(yùn)行KT之后,開發(fā)者的本地程序可以直接像運(yùn)行在集群中的服務(wù)一樣通過service名字調(diào)用集群中部署的其它應(yīng)用:

而如果希望集群中的其它Pod(比如圖中的PodD和PodE)能夠通過ServiceC訪問到本地運(yùn)行的程序C‘,通過如下命令,指定需要替換的目標(biāo)Deployment以及指定本地服務(wù)端口:

  1. #-swap-deployment指定需要替換的目標(biāo)Deployment  
  2.   
  3. # -expose 指定本地服務(wù)運(yùn)行的端口  
  4.   
  5. ktctl -swap-deployment c-deployment -expose=8080  

KT在構(gòu)建虛擬專用網(wǎng)絡(luò)的同時(shí),還會(huì)自動(dòng)通過代理容器接管集群原有的PodC實(shí)例,并直接轉(zhuǎn)發(fā)的本地的8080端口。實(shí)現(xiàn)集群應(yīng)用聯(lián)調(diào)本地。

經(jīng)過上述兩個(gè)命令,開發(fā)者就可以真正的使用云原生的方式來開發(fā)調(diào)試Kubernetes中的應(yīng)用了。

工作原理

下面解析KT的工作原理,如果你已經(jīng)迫不及待的想嘗試KT的功能,可以直接前往下載KT工具。

KT主要由兩部分組成:

  • 在本地運(yùn)行的命令行工具ktctl
  • 運(yùn)行在集群中的SSH/DNS代理容器。

在工作原理上KT實(shí)際上是結(jié)合Kubernetes自身能力實(shí)現(xiàn)的一個(gè)基于SSH的網(wǎng)絡(luò)。這這部分,筆者將詳細(xì)介紹云效Kubernetes開發(fā)者工具KT的工作原理:

打通SSH協(xié)議通道

在Kubernetes命令行工具kubectl中內(nèi)置的port-forward命令可以幫助用戶建立本地端口到Kubernetes集群中特定Pod實(shí)例端口間的網(wǎng)絡(luò)轉(zhuǎn)發(fā)。

當(dāng)我們?cè)诩褐胁渴鹨粋€(gè)包含sshd服務(wù)的容器后,通過port-forward可以將容器的SSH服務(wù)端口映射到本地:

  1. # 將對(duì)本地2222端口轉(zhuǎn)發(fā)到kt-porxy實(shí)例的22端口 
  2.  
  3. $ kubectl port-forward deployments/kt-proxy 2222:22 
  4.  
  5. Forwarding from 127.0.0.1:8080 -> 8080 
  6.  
  7. Forwarding from [::1]:8080 -> 8080 

在運(yùn)行端口轉(zhuǎn)發(fā)后,就可以直接通過本地的2222端口通過SSH協(xié)議進(jìn)入到Kubernetes集群的kt-proxy實(shí)例中。從而打通本地與集群之間的SSH網(wǎng)絡(luò)鏈路。

本地動(dòng)態(tài)端口轉(zhuǎn)發(fā)

在打通SSH網(wǎng)絡(luò)之后,我們就可以利用SSH通道實(shí)現(xiàn)本地到集群的網(wǎng)絡(luò)請(qǐng)求,其中最基本的方式就是使用SSH動(dòng)態(tài)端口轉(zhuǎn)發(fā)的能力。

使用如下命令,通過本地2000運(yùn)行的代理,可以將網(wǎng)絡(luò)請(qǐng)求通過集群中運(yùn)行的kt-proxy容器進(jìn)行轉(zhuǎn)發(fā),從而實(shí)現(xiàn)本地到集群網(wǎng)絡(luò)請(qǐng)求的轉(zhuǎn)發(fā):

  1. # ssh -D [本地網(wǎng)卡地址:]本地端口 name@ip -p映射到kt-proxy的22端口的本地端口 
  2.  
  3. ssh -D 2000 root@127.0.0.1 -p2222 

在啟用SSH動(dòng)態(tài)端口轉(zhuǎn)發(fā)后,通過設(shè)置http_proxy環(huán)境變量后,即可直接在命令行中訪問集群網(wǎng)絡(luò):

  1. # export http_proxy=socks5://127.0.0.1:ssh動(dòng)態(tài)端口轉(zhuǎn)發(fā)的代理端口 
  2.  
  3. export http_proxy=socks5://127.0.0.1:2000 

不過原生SSH動(dòng)態(tài)端口轉(zhuǎn)發(fā)也有一定的限制那就是無法直接使用UDP協(xié)議,這里我們選擇了一個(gè)替代方案sshuttle. 如下命令所示:

  1. # export http_proxy=socks5://127.0.0.1:ssh動(dòng)態(tài)端口轉(zhuǎn)發(fā)的代理端口 
  2.  
  3. export http_proxy=socks5://127.0.0.1:2000 
  4.  
  5. sshuttle --dns --to-ns 172.16.1.36 -e 'ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null' -r root@127.0.0.1:2222 172.16.1.0/16 172.19.1.0/16 -vv 

sshuttle工具在SSH協(xié)議之上構(gòu)建了一個(gè)簡(jiǎn)易的虛擬專用網(wǎng)絡(luò),同時(shí)支持DNS協(xié)議轉(zhuǎn)發(fā)。

因此,接下來的問題就是實(shí)現(xiàn)一個(gè)自定義的DNS服務(wù)即可,而該服務(wù)在KT中是直接內(nèi)置在KT代理鏡像中。

遠(yuǎn)程端口轉(zhuǎn)發(fā)

在本地到集群的鏈路打通之后。 接下來需要解決的就是從集群到本地的訪問鏈路。這部分,我們會(huì)使用到SSH的遠(yuǎn)程端口轉(zhuǎn)發(fā)能力,如下所示,指定所有對(duì)kt-proxy的8080端口的網(wǎng)絡(luò)請(qǐng)求都會(huì)通過SSH隧道直接轉(zhuǎn)發(fā)到本地的8080端口:

  1. # ssh -R 8080:localhost:8080 root@127.0.0.1 -p2222 
  2.  
  3. ssh -R 8080:localhost:8080 root@127.0.0.1 -p2222 

因此,在KT的實(shí)現(xiàn)過程之中,結(jié)合Kubernetes基于標(biāo)簽的松耦合能力,我們只需要克隆原有應(yīng)用實(shí)例的YAML描述,并將容器替換為kt-proxy即可。從而將對(duì)集群中原有應(yīng)用的請(qǐng)求通過SSH遠(yuǎn)程端口轉(zhuǎn)發(fā)到本地。

綜上,通過利用Kubernetes原生能力以及適度的擴(kuò)展,開發(fā)者可以快速在本地利用KT打破本地網(wǎng)絡(luò)與Kubernetes網(wǎng)絡(luò)之間的界限,大大提升使用Kubernetes進(jìn)行聯(lián)調(diào)測(cè)試的效率。

小結(jié)

工具承載了對(duì)特定問題的解決方案,而工程技術(shù)實(shí)踐則是對(duì)其價(jià)值的放大。阿里巴巴云效平臺(tái),致力于為開發(fā)者提供一站式的企業(yè)研發(fā)與協(xié)作服務(wù),并將阿里多年的軟件工程實(shí)踐以一種更加開發(fā)的形態(tài)反饋技術(shù)社區(qū),歡迎更多的技術(shù)開發(fā)者入駐。

責(zé)任編輯:張燕妮 來源: 阿里云云棲社區(qū)
相關(guān)推薦

2020-07-09 10:02:27

Python開發(fā)工具

2016-01-04 10:20:36

2018-06-04 07:20:08

2020-10-22 15:05:43

開發(fā)者技能工具

2011-09-26 10:22:01

工程師爸爸兒童應(yīng)用

2010-04-19 10:14:28

WebGoogle

2015-06-01 07:37:42

開發(fā)產(chǎn)品

2024-11-28 13:07:33

2022-04-20 09:26:08

Mock前端開發(fā)工具

2021-04-22 09:20:20

KubernetesKubectl FlaLinux

2018-10-10 16:15:01

團(tuán)隊(duì)研發(fā)效率

2025-01-21 08:01:26

2014-02-24 16:26:15

云存儲(chǔ)

2013-03-15 09:59:42

遠(yuǎn)程開發(fā)云工具Flowdock

2011-01-11 13:45:20

2020-12-22 10:30:47

Nagios工具監(jiān)控

2019-10-14 09:08:33

云原生Kubernetes開發(fā)

2021-02-25 21:37:48

iOS應(yīng)用系統(tǒng)

2013-11-26 10:51:08

開發(fā)應(yīng)用創(chuàng)業(yè)移動(dòng)應(yīng)用

2020-07-13 07:15:37

安全測(cè)試工具漏洞軟件安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩免费一区二区三区| 国产成+人+综合+亚洲欧美| 国产黑丝在线一区二区三区| 国产综合久久久久| 国语一区二区三区| 亚洲夜晚福利在线观看| 色综合999| 欧美视频精品在线观看| 污网站在线播放| 亚洲精品中文在线影院| 国产高潮免费视频| 久久久国产精品不卡| 日韩极品视频在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩一区在线观看视频| 中文在线播放一区二区| 成人美女免费网站视频| 日韩国产一区| 国产欧美一区二区三区久久人妖 | 欧美国产日韩一区二区在线观看| 在线一区av| 日韩电视剧免费观看网站| 国产精品186在线观看在线播放| 欧美一区二区视频观看视频 | 欧美午夜免费| 免费观看30秒视频久久| 亚洲一区二区三区欧美| 久久99国产精品麻豆| 少妇一晚三次一区二区三区| www.色精品| 亚洲四虎av| 午夜精品一区在线观看| 成人高清在线| 欧美精品一区二区三| 日韩三级影视| 羞羞色国产精品| 精品视频亚洲| 国产精品入口免费| 九九热在线视频观看这里只有精品| 精品在线视频一区二区| 麻豆国产欧美日韩综合精品二区 | 激情亚洲色图| 一区二区三区在线观看网站| 香蕉网站在线| 日韩精品中午字幕| 成人精品国产亚洲| 91成人在线播放| 欧美a级片网站| 色中文字幕在线观看| xfplay精品久久| 探花国产精品| 欧美巨大另类极品videosbest| 国产不卡123| 欧美老肥婆性猛交视频| 婷婷久久一区| 性生活免费观看视频| 亚洲欧美影音先锋| 成年人网站在线| 欧美黄色性视频| 黄色日韩在线| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 亚洲综合一二区| 欧美aaaaaaa| 97免费在线视频| 久久国产88| www.99.热| 欧美成人国产一区二区| 婷婷视频一区二区三区| 国产精品一 二 三| 91麻豆精品在线观看| 国产精品麻豆一区二区三区 | 精品影视av免费| 成年网站免费| 亚洲第一网站男人都懂| 欧美日韩一区二区三区不卡视频| 久久综合久久综合这里只有精品| 久久人人超碰精品| а√资源新版在线天堂| 国产91|九色| 国产在线不卡视频| 中文字幕视频在线观看| 色yeye香蕉凹凸一区二区av| 国产精品av一区二区| www黄色日本| 欧美精品vⅰdeose4hd| 红杏aⅴ成人免费视频| 午夜精品一区二区三区四区| 一区二区三区日韩欧美精品| 欧美gv在线| 波多野结衣久草一区| 国产蜜臀97一区二区三区| free性m.freesex欧美| 91网站在线免费观看| 91麻豆精品一区二区三区| 黄色在线看片| 91国产在线播放| 亚洲免费在线看| 警花av一区二区三区 | 欧美视频网站| av在线dvd| 精品国产拍在线观看| 亚洲一区二区三区高清| 在线视频福利| 91av在线免费观看视频| 成人午夜看片网址| 欧美xxxx做受欧美88bbw| 亚洲伊人久久大香线蕉av| 亚洲卡通动漫在线| 香港久久久电影| 玖玖精品在线视频| 日韩一区二区不卡| 欧美日本中文| 青青国产在线| 国产精品视频免费观看www| 久久精品一区二区| 日韩电影精品| 阿v天堂2018| 亚洲欧美日韩国产精品| 美女视频网站久久| 在线视频中文字幕第一页| 国产伦精品一区二区三区在线| 亚洲成人av电影在线| 国产成人久久| 大地资源高清播放在线观看 | 日本精品另类| 日韩免费三级| 欧美伦理视频网站| 在线欧美视频| av二区在线| 国产精品一区在线观看| 欧美午夜性色大片在线观看| 国产亚洲精品美女久久久久久久久久| 乱小说综合网站| 91av在线影院| 一区二区久久久久久| 日本女优一区| 日本一二三区在线视频| 成人字幕网zmw| 欧美午夜激情小视频| 综合国产在线| 丁香婷婷在线观看| 免费在线成人av电影| 欧美xxxx在线观看| 国产一区二区三区在线观看免费| 美女91在线看| 毛片在线视频播放| 欧美日韩国产成人高清视频| 国产精品视频在线看| 色综合久久中文| 中文字幕在线资源| 国产一区二区三区av在线| 日韩你懂的在线观看| 国内精品视频一区二区三区八戒 | 欧美伦理视频网站| 日韩精品午夜视频| 午夜激情电影在线播放| 免费看黄在线看| 色综合久久精品亚洲国产| 国产精品视频yy9299一区| 欧美成人直播| 精品176二区| 国产a级黄色大片| 久久久之久亚州精品露出| 五月天精品一区二区三区| 国产欧美成人| 欧美xxxx做受欧美护士| 丁香婷婷激情网| 成人美女av在线直播| 欧美一级在线观看| jizz一区二区| 精品国精品国产自在久国产应用| 国产在线视频你懂得| 色999五月色| 欧美黄色片在线观看| 欧美性生交大片免费| 蜜臀va亚洲va欧美va天堂| 99re8这里有精品热视频免费| 一起操在线观看| 红桃一区二区三区| 国产精品高潮呻吟久久av野狼| 91精品国产综合久久精品| 成人免费高清视频在线观看| 免费一区二区三区视频导航| 日韩另类在线| 国产精品拍拍拍| 乱一区二区三区在线播放| h网站视频在线观看| 国产成人aaaa| 国产精品嫩草99av在线| 久久99精品久久久久久动态图| 久久99精品国产91久久来源| 欧美成人福利视频| 岛国av一区二区在线在线观看| 久久久精品2019中文字幕神马| 欧洲精品久久| av有码在线观看| 日本不卡一区二区三区高清视频| 亚洲精品五月天| 国产视频久久网| 久久久久久亚洲精品|