クラウド ネイティブのヒント: OrbStack — ローカル K8s 環境向けのドメイン名マッピング最適化、開発者の新たなお気に入り

クラウド ネイティブのヒント: OrbStack — ローカル K8s 環境向けのドメイン名マッピング最適化、開発者の新たなお気に入り

今日は、新しいパートナーであるOrbStack[2]を紹介したいと思います。OrbStackのスローガンは「遅くて扱いにくいコンテナとVMにさよならを言う」です。しかし、正直に言うと、私が最も気に入っている機能は、設定が不要なローカル ドメイン名機能です。

コンテナドメイン名

OrbStack はコンテナを非常に親密 (強力) かつ大規模に扱い、各コンテナに一意のドメイン名を割り当てます。

たとえば、getting-started という名前のコンテナをローカルで起動し、コンテナ内のポート 80 をローカルのポート 3000 にマップするとします。

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

実行中のローカル コンテナは次のとおりです。

写真

以前は、localhost + ポートを介してこのコンテナにアクセスする必要がありました。

写真

さて、どうしましょう? 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 ファイルの内容は変更されていないのに、どうやって変更するのでしょうか?まず、システムの 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 コマンドの出力では、リゾルバ #2 セクションのオプション フィールドに mdns が含まれています。これは、リゾルバが .local ドメイン名のマルチキャスト DNS クエリを処理するように構成されていることを示します。

mDNSはマルチキャストDNS[3]の略で、従来のDNSサーバーを必要とせずにローカルネットワーク上のホスト名を解決するためのプロトコルです。これは、Bonjour (Apple の実装) がローカル ネットワーク上のサービスとホスト名を検出するために使用するメカニズムです。

 # 获取本地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

すごいですね...この機能があればいいですね。ローカルの MySQL 接続をこのように簡単に調整できます。

写真

カスタムドメイン名

OrbStack を使用すると、ユーザーはコンテナのドメイン名をカスタマイズし、コンテナの起動時にラベルを通じて簡単に挿入できます。

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

前述のように、OrbStack は mDNS を使用してドメイン名を IP アドレスに解決するため、.local TLD に対してのみ有効です。カスタムドメイン名を作成するときは、これに注意してください。

写真

ドメイン名

http://orb.local にアクセスすると、実行中のコンテナ リンクがすべて表示されます。

写真

情報アイコンをクリックすると、クライアント上でコンテナ リストを表示することもできます。

写真

OrbStack + 種類

次に、ローカル ドメイン名の機能を使用して、自己署名 TLS 証明書のプロセスを再展開し、前回の共有と何が違うのかを確認します。

1. クラスターのドメイン名を取得する

UI を通じて、Kind クラスターのドメイン名を取得します: local-control-plane.orb.local

写真

2. K8s TLSシークレットを作成する

次に、mkcert[4]を使用してワイルドカード証明書を作成した。

 ➜ 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 ablocal-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 シークレットとしてクラスターに追加します。

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

3. TLSシークレットを使用するようにK8s Ingressを構成する

# 创建一个Nginx Deployment kubectl create deployment nginx-deployment --image=nginx:1.25.3 # 暴露Deployment 作为一个Service kubectl expose deployment nginx-deployment --port=80

最後に、K8s Ingress リソースでこの TLS シークレットを参照して HTTPS を有効にします。対応するドメイン名は 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

💡 ヒント: OrbStack は、今後の安定バージョンで HTTPS サポートをデフォルトで有効にする予定です。つまり、自己署名証明書を手動で作成、インストール、または信頼する必要がなくなり、ローカル開発者にこれまでにない利便性がもたらされます。

写真

最新機能をすぐに体験したい方は、以下の手順に従って早期体験を行ってください。[設定] に移動し、更新チャネルとして [Canary (高速)] を選択してから、OrbStack メニューで [更新の確認] を選択します。


更新チャネルを調整する


アップデートを確認する

アップグレード後、コンテナ内の既存のサービスには https://getting-started.orb.local/ から直接アクセスできるようになります。

写真

OrbStackのネイティブK8sサポート

実際、OrbStack は開発環境向けに最適化された軽量のシングルノード K8s クラスターを提供します。

写真

ローカル開発では、マルチノード クラスターが必要ない場合は、独自のクラスターを構築する代わりに Kind を直接使用できます。

上記のドメイン名機能に加えて、Pod の IP またはサービスの IP に直接アクセスすることもできます。これは日常の開発やテストに非常に便利で、ポート転送を行う必要がありません。

詳細については、Using Kubernetes[5]を直接参照してください。ここでは詳しく説明しません。

裏面に記入

従来の DNS ソリューションから最新の OrbStack まで、ローカル開発環境は大きく変化しました。 OrbStack により、作業効率が向上しただけでなく、これまでにない利便性も享受できました。コンテナへの即時アクセスや Kind クラスターへのシームレスな接続など、OrbStack は強力な機能を実証してきました。

クラウドネイティブの世界では、あらゆる技術的進歩は開発者の生活を楽にするように設計されています。そして今日、私たちはこの目標に向けて新たな大きな一歩を踏み出しました。皆さんも OrbStack を試してみて、楽しんでいただければ幸いです。

次の記事では、クラウド ネイティブ テクノロジーの謎をさらに探っていきます。次回もお楽しみに! 🚀

参考文献

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

[2]オーブスタック: https://orbstack.dev/

[3]マルチキャストDNS: https://en.wikipedia.org/wiki/Multicast_DNS

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

[5]Kubernetesの使用: https://docs.orbstack.dev/kubernetes/

<<:  クラウド コンピューティングの利点とメリットは何ですか?いくつ知っていますか?

>>:  Kubernetes RBAC とは何ですか?なぜそれが必要なのですか?

推薦する

ホームページの修正方法は? Alibaba China ウェブサイトのホームページ修正の経験

他のウェブサイトと同様に、アリババのホームページの改訂は毎回、もつれと闘争の洗礼である。判断と選択は...

純粋なプライベート クラウドおよびコンテナー ベンダーにとって、まだ解決策はあるのでしょうか?破産だけかもしれない

最近、別のメーカーがプライベートクラウド製品を放棄したという噂があります。振り返ってみると、Open...

Dubbo 3.0サーバー露出の全プロセスの詳細な分析

背景クラウドネイティブ時代の到来に伴い、Dubbo 3.0 の重要な目標はクラウドネイティブを完全に...

Google Play の 2015 年のベスト ゲームとアプリが発表されました

今年も年末がやってきました。毎年恒例の Google Play ストアのベスト アプリ リストが予定...

VDI デスクトップ仮想化の 4 つのプロトコル - 仮想化の悪魔の四分円

世界的に、デスクトップ仮想化市場の主なプレーヤーは、Citrix (市場シェア 46%)、VMwar...

ウェブサイトの最適化は独創的でなければならないのか?初心者SEO担当者は理解にもっと注意を払うべきである

新しいウェブサイトを立ち上げたら何をすべきか、インターネット上で初心者の SEO 担当者が質問してい...

Hostus シンガポール Softlayer データセンター VPS レビュー [1G メモリ]

Hostus はシンガポールのデータセンターで Softlayer VPS を実際に数日前からリリー...

SEOウェブサイトデザインで無視できない詳細

最適化に関しては、インターネットには「外部リンクは王様、内部リンクは皇帝」という格言が溢れており、多...

Amazon Elasticsearch Service の紹介

Amazon Elasticsearch Service を使用すると、ログ分析、全文検索、アプリケ...

百度の外部リンク判定基準文書の一般ウェブサイトへの実際の価値

4月25日、百度は外部リンクの審査基準の一部を発表した。全文を読むと、これらの基準は間違いなく昨年6...

MWC 2019: アリババクラウド、全方位的なエンタープライズインテリジェントテクノロジーを提供する7つの主要製品をリリース

現地時間2月25日、バルセロナで開催されたMWC 2019において、アリババクラウドはサーバーレスコ...

「デジタルツインファースト」は英国にどのような革命をもたらすのでしょうか?

2013 年、英国政府は、公共部門の組織が他の選択肢よりも先にクラウド コンピューティング ソリュー...

Cyber​​eason は Oracle Cloud Infrastructure を活用して顧客のサイバーセキュリティ脅威からの防御を支援

Oracle Cloud Infrastructureは、サイバーセキュリティリーダーにとって最適な...

Discuz! App Center が新しい「需要請求」モデルを開始

最近、Discuz! 公式サイトの「アプリケーション センター」セクションに、ウェブマスターがニーズ...