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

云原生小技巧 :OrbStack — 本地 K8s 環(huán)境的域名映射優(yōu)化,開發(fā)者的新寵

云計算 云原生
從傳統(tǒng)的 DNS 解決方案,到現(xiàn)代的 OrbStack?,我們見證了本地開發(fā)環(huán)境的巨大變革。通過 OrbStack?,我們不僅提升了工作效率,還享受到了前所未有的便捷。無論是容器的即時訪問,還是 Kind 集群的無縫連接,OrbStack 都展現(xiàn)了其強大的能力。

今天,我要介紹的這個新伙伴: OrbStack[2],它的 Slogan 是: Say goodbye to slow, clunky containers and VMs。不過,說實話,我最喜歡的還是它的 Local domain names 的能力,因為它是零配置的。

Container domain names

OrbStack 對待容器的態(tài)度可謂是親(強)密(大)無間,它為每個容器賦予了一個獨一無二的域名。

舉個例子,假設(shè)我在本地啟動了一個名為 getting-started 的容器,并將容器內(nèi)的 80 端口映射到了本地的 3000 端口

docker run -d -p 3000:80 --name getting-started docker/getting-started

下面是我本地容器運行的情況

圖片圖片

在以往,我需要通過 localhost + port 的方式來訪問這個容器。

圖片圖片

現(xiàn)在呢?只需通過 OrbStack 分配的域名,我就可以暢通無阻地訪問它,而且不需要指定端口,非常的絲滑。

圖片圖片

mDNS

通過一系列的命令和檢查,我們可以看到 getting-started.orb.local 這個域名確實被解析到了容器的 IP 地址:192.168.215.3。

? ping getting-started.orb.local
PING getting-started.orb.local (192.168.215.3): 56 data bytes
64 bytes from 192.168.215.3: icmp_seq=0 ttl=63 time=1.714 ms
64 bytes from 192.168.215.3: icmp_seq=1 ttl=63 time=0.472 ms
64 bytes from 192.168.215.3: icmp_seq=2 ttl=63 time=1.204 ms

? docker inspect getting-started \
  -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
192.168.215.3

我本機的 /etc/hosts 文件內(nèi)容也沒發(fā)生過變化,那么它是怎么做到的呢?我們先來看下系統(tǒng)的 DNS 配置信息。

? scutil --dns
DNS configuration

resolver #1
  ...

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300000

resolver #3
  ...

在 scutil --dns 命令的輸出中,resolver #2 部分的 options 字段包含 mdns,這表示該解析器配置用于處理 .local 域名的多播 DNS 查詢。

mDNS 即多播 DNS(Multicast DNS[3])它是一種在本地網(wǎng)絡(luò)上無需傳統(tǒng) DNS 服務(wù)器即可解析主機名的協(xié)議。這是 Bonjour(Apple 的實現(xiàn))用來在本地網(wǎng)絡(luò)上發(fā)現(xiàn)服務(wù)和主機名的一種機制。

# 獲取本地 getting-started.orb.local 域名的地址
? dns-sd -G v4v6 getting-started.orb.local
DATE: ---Sat 04 Nov 2023---
 9:52:21.350  ...STARTING...
Timestamp     A/R  Flags         IF  Hostname                               Address                                      TTL
 9:52:21.351  Add  40000003      18  getting-started.orb.local.             FD07:B51A:CC66:0000:A617:DB5E:C0A8:D703%<0>  300
 9:52:21.352  Add  40000002      18  getting-started.orb.local.             192.168.215.3                                300

# 再查看特定主機的解析信息
? dns-sd -Q getting-started.orb.local
DATE: ---Sat 04 Nov 2023---
 9:55:31.664  ...STARTING...
Timestamp     A/R  Flags         IF  Name                          Type   Class  Rdata
 9:55:31.668  Add  40000002      18  getting-started.orb.local.    Addr   IN     192.168.215.3

Cool...有了這個能力就非常贊了,我可以輕松地將我的本地 Mysql 連接調(diào)整成這個樣子。

圖片圖片

自定義域名

OrbStack 允許用戶自定義容器的域名,在啟動容器時通過標簽的方式方便的注入。

docker run --rm -l dev.orbstack.domains=foobar.local docker/getting-started

正如上面提到的 OrbStack 是通過 mDNS 來實現(xiàn)域名到 IP 的解析,所以它只對 .local 這個 TLD 有效,在做自定義域名的時候需要注意下。

圖片圖片

Domain names

通過訪問 http://orb.local 我們可以看到所有正在運行的容器鏈接。

圖片圖片

甚至可以在它的客戶端上查看容器列表,單擊信息圖標獲取。

圖片圖片

OrbStack + Kind

接下來,我們利用 Local domain names 的能力,重新部署下自簽 TLS 證書的流程,看下和上次的分享有什么區(qū)別?

1. 獲取集群的域名

通過 UI,獲取到 Kind 集群的域名:local-control-plane.orb.local

圖片圖片

2. 創(chuàng)建 K8s TLS Secret

然后,我們利用 mkcert[4] 創(chuàng)建了一個通配符證書

? mkcert '*.local-control-plane.orb.local'

Created a new certificate valid for the following names ??
 - "*.local-control-plane.orb.local"

Reminder: X.509 wildcards only go one level deep, so this won't match a.b.local-control-plane.orb.local ??

The certificate is at "./_wildcard.local-control-plane.orb.local.pem" and the key at "./_wildcard.local-control-plane.orb.local-key.pem" ?

It will expire on 4 February 2026 ??

并將其作為 K8s TLS Secret 添加到我們的集群中。

kubectl create secret tls tls-secret \
  --key=_wildcard.local-control-plane.orb.local-key.pem \
  --cert=_wildcard.local-control-plane.orb.local.pem

3. 配置 K8s Ingress 使用 TLS Secret

# 創(chuàng)建一個 Nginx Deployment
kubectl create deployment nginx-deployment --image=nginx:1.25.3
# 暴露 Deployment 作為一個 Service
kubectl expose deployment nginx-deployment --port=80

最后,我們在 K8s Ingress 資源中引用了這個 TLS Secret,以啟用 HTTPS,對應(yīng)的域名為:nginx.local-control-plane.orb.local。

kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx
spec:
  tls:                                          # 以下 4 行是為了支持 TLS
  - hosts:                                      #
    - nginx.local-control-plane.orb.local       #
    secretName: tls-secret                      #
  rules:
  - host: nginx.local-control-plane.orb.local
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-deployment
            port:
              number: 80
EOF

完成這些步驟后,我們就可以愉快地驗證一下了,中間我們不需要對 DNS 做任何的配置。??

圖片圖片

HTTPS for containers

?? 小貼士:OrbStack 在其即將到來的穩(wěn)定版中將默認啟用 HTTPS 支持,這意味著我們將不再需要手動創(chuàng)建、安裝或信任自簽名證書,為本地開發(fā)者帶來前所未有的便捷。

圖片圖片

對于那些迫不及待想要體驗最新功能的小伙伴們,可以通過以下步驟來搶先體驗:進入設(shè)置,選擇更新通道為 Canary(faster),然后在 OrbStack 菜單中選擇檢查更新。


調(diào)整更新通道調(diào)整更新通道


檢查更新檢查更新

升級完后,容器里已有的服務(wù)就可以直接通過 https://getting-started.orb.local/ 訪問了。

圖片圖片

OrbStack 的原生 K8s 支持

事實上 OrbStack 提供了一個輕量級的單節(jié)點 K8s 集群,它對于開發(fā)環(huán)境來說是優(yōu)化的。

圖片圖片

在本地開發(fā),如果沒有 multi-node clusters 需求的話,我們可以不用 Kind 自建集群,直接用它就好。

除了以上提到的域名能力之外,我們還可以通過 Pod 的 IP 又或者 Service 的 IP 直接訪問,這對于我們平時開發(fā)或者測試來說非常的方便,不需要再做 port-forward 了。

大家可以直接看 Using Kubernetes[5],這里不再贅述。

寫在后面

從傳統(tǒng)的 DNS 解決方案,到現(xiàn)代的 OrbStack,我們見證了本地開發(fā)環(huán)境的巨大變革。通過 OrbStack,我們不僅提升了工作效率,還享受到了前所未有的便捷。無論是容器的即時訪問,還是 Kind 集群的無縫連接,OrbStack 都展現(xiàn)了其強大的能力。

在云原生的世界里,每一次技術(shù)的進步都是為了讓開發(fā)者的生活變得更加簡單。而今天,我們又向這個目標邁進了一大步。我希望你們能夠嘗試 OrbStack,并且享受它帶來的便利。

在下一篇文章中,我將探索更多云原生技術(shù)的奧秘。敬請期待,我們下次見!??

參考資料

[1]Dnsmasq: https://en.wikipedia.org/wiki/Dnsmasq

[2]OrbStack: https://orbstack.dev/

[3]Multicast DNS: https://en.wikipedia.org/wiki/Multicast_DNS

[4]mkcert: https://github.com/FiloSottile/mkcert

[5]Using Kubernetes: https://docs.orbstack.dev/kubernetes/

責(zé)任編輯:武曉燕 來源: Cloud Native 101
相關(guān)推薦

2022-04-07 10:17:18

云原生服務(wù)器優(yōu)化

2023-11-03 08:43:00

云原生TLS 證書

2021-05-07 09:31:33

KindK8s Operator

2021-08-23 13:50:46

云原生PaaS

2020-10-25 23:37:55

開發(fā)者技能工具

2024-09-26 09:50:07

2022-07-18 18:48:32

Kubernetes云原生

2024-10-06 13:47:43

后端開發(fā)者項目

2023-03-06 07:19:50

2023-01-04 17:42:22

KubernetesK8s

2021-04-25 10:26:58

云計算云原生

2023-02-01 07:46:51

k8s云原生巧妙用法

2020-06-03 15:56:46

紅帽云原生Quarkus

2023-11-27 13:41:00

Kubernete本地調(diào)試

2025-01-03 08:08:56

2023-03-03 07:54:21

2023-03-07 07:56:37

Sqoopk8s底層

2022-11-08 08:55:31

2024-06-12 13:21:06

2022-10-14 07:42:50

LuceneHTTPWeb
點贊
收藏

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

成人日韩视频| 久操精品在线| 欧美国产激情二区三区| 久久久久久国产精品一区| 国产精品传媒麻豆hd| 亚洲精品欧美在线| 中文字幕在线中文| 久久福利综合| 日韩在线一区二区三区免费视频| 日本h片在线看| 激情综合色播五月| 久久久伊人日本| 国产小视频在线| 亚洲欧洲日韩女同| 少妇久久久久久被弄到高潮| 久久精品国内一区二区三区水蜜桃| 国产婷婷97碰碰久久人人蜜臀| 人妻av中文系列| 国产亚洲福利| 亚洲综合最新在线| 亚洲一区二区三区在线免费| 欧美喷水一区二区| 色久视频在线观看| 国产欧美一区二区精品秋霞影院| 蜜桃av噜噜一区二区三| 青青草成人影院| 欧美制服第一页| 欧美xxxx网站| 亚洲精品久久久久中文字幕二区| 中文字幕免费在线视频| 久久久久久久综合日本| 国产xxxx振车| 国产精品影视在线| 久久久久高清| 亚洲国产高清一区二区三区| 在线观看国产欧美| 污污的视频在线观看| 日韩天堂在线观看| 中文字幕福利片| 国模精品视频| 精品久久久久99| 青草久久伊人| 日韩欧美在线观看| 福利视频在线播放| 国产精品久久免费看| 日韩小视频在线播放| 美女视频黄免费的久久| 精品久久久无码人妻字幂| yourporn久久国产精品| 91九色国产ts另类人妖| 国产精品一区二区三区乱码| 992tv快乐视频| 亚洲欧美综合国产精品一区| 亚洲va欧美va国产综合久久| 久久中文字幕av一区二区不卡| 99视频日韩| 精品一区二区在线播放| 国产精品九九九| 日韩久久久久| 国产日韩在线看| 丝袜亚洲另类欧美综合| 九九99久久| yourporn久久国产精品| 欧美新色视频| 精品在线小视频| 天天射成人网| 被灌满精子的波多野结衣| 国产欧美中文在线| 永久免费在线观看| 日韩亚洲欧美一区| 亚洲高清黄色| 亚洲专区国产精品| a亚洲天堂av| 爱爱爱免费视频在线观看| 亚洲欧美日本精品| 91亚洲国产成人久久精品| 一区二区日本| 亚洲综合色区另类av| 日韩和的一区二在线| 国产成人精品免费视频大全最热| 972aa.com艺术欧美| 污香蕉视频在线观看| 亚洲奶大毛多的老太婆| 亚洲视频电影在线| 成人网站免费观看入口| 欧美优质美女网站| 国产美女视频一区二区| 久久伦理网站| 一本久久a久久免费精品不卡| 亚洲日韩中文字幕一区| 成人伊人精品色xxxx视频| 国产精品毛片| 成年人视频在线网站| 伊人精品在线观看| 中日韩男男gay无套| 免费观看羞羞视频网站| 在线视频精品一| 成人免费三级在线| 欧洲一级在线观看| 国产中文字幕91| 粉嫩av一区二区三区免费野| 亚洲精品蜜桃乱晃| 中文字幕视频在线| 97av在线视频| 亚洲精选在线视频| 久久人体视频| 黄色网页在线播放| 亚洲日本欧美在线| 亚洲美女中文字幕| 国产欧美日韩三级| 只有精品亚洲| 一区二区高清视频| 欧美日韩国产电影| 性欧美暴力猛交另类hd| 中文字幕伦理免费在线视频 | 日韩一级片网站| 青草国产精品久久久久久| 国产51人人成人人人人爽色哟哟 | 亚洲综合色成人| 久久国产电影| 免费在线观看污视频| 国产精品一区二区三区观看| 欧美一区二区网站| 日韩电影在线观看一区| 欧美国产视频| 巨骚激情综合| 日本在线成人一区二区| 午夜精品久久久99热福利| 7777久久香蕉成人影院| 中国一级特黄毛片大片| 不卡一区二区三区视频| 夜夜嗨av一区二区三区免费区 | 激情久久久久久久久久久久久久久久| 综合激情五月婷婷| 91亚洲精选| 牛牛影视精品影视| 美女日批免费视频| 久久99久久精品国产| 久热精品视频在线免费观看| 狠狠操狠狠色综合网| 久久综合九色综合欧美亚洲| 伊人久久大香线蕉av不卡| 成在在线免费视频| 婷婷亚洲天堂| 日本阿v视频在线观看| 国产精品视频免费一区| 国外成人性视频| 亚洲奶大毛多的老太婆| 欧美精品自拍偷拍| 99久精品国产| 99视频精品全部免费在线| 一区二区91| 久久一区二区三区喷水| 久久久久九九精品影院| 九九九伊在线综合永久| 精品丝袜在线| 在线视频超级| 国模精品视频| 丁香婷婷在线观看| 在线观影网站| 欧美激情图区| 婷婷丁香六月天| 全色精品综合影院| 意大利激情丛林无删减版dvd| 亚洲成人福利| 成人www视频在线观看| 亚洲不卡在线| 国产超碰在线观看| 国产网站免费在线观看| 日本视频二区| 在线观看免费版| 色戒汤唯在线观看| 免费看久久久| 亚洲裸体俱乐部裸体舞表演av| 久久国产99| 26uuu国产电影一区二区| 日韩欧美国产一区二区| 欧美高清你懂得| 亚洲欧洲日产国码av系列天堂| 精品久久五月天| 欧美成人免费小视频| 91色中文字幕| 一本一本a久久| 污污动漫在线观看| 午夜激情电影在线播放| 成人免费直播在线| 99亚洲视频| 中文字幕av不卡| 日韩情涩欧美日韩视频| 欧美激情乱人伦| 国产精品欧美久久| 最新黄色片网站| 成人四虎影院| 亚洲黄色成人| 亚洲视频你懂的| 亚洲精品久久久久久久久久久久久| 17婷婷久久www| 成人au免费视频影院| 色视频网站在线| 自慰无码一区二区三区|