ãåã¯ãããããã·ãçªç ´ãã¦ãããCIåããªK3dã¨K3sã§å§ããã¯ã©ã¹ã¿æ§ç¯ã
ãã®è¨äºã¯ MicroAd Advent Calendar 2024 㨠Kubernetes Advent Calendar 2024 ã®4æ¥ç®ã®è¨äºã§ãã
ä»åã¯ãK3dãProxyç°å¢ä¸ã§å©ç¨ããéã«ããã£ãã®ã§ãã®è§£æ¶æ³ã«ã¤ãã¦ã CloudNative Days Winter 2024 ã§ã¯ãRancherã®ä¸ã®äººã¨åéãããã¦ããã£ããããç´¹ä»ãã¾ãã
ï¼Â´-`ï¼.。oOï¼ export HTTP_PROXY ã§çµããã§ã¯ãã ï¼
ã£ã¦æãããï¼éããã§ãããã
ã§ã¯å§ãã¦ããã¾ãã
ã¯ããã«
K3dã¯ãDockerã³ã³ããå ã§Kubernetesã®è»½éçã®K3sã®ã¯ã©ã¹ã¿ãã·ã³ã°ã«ãã¼ãã¾ãã¯ãã«ããã¼ãã§åããããã®ãã¼ã«ã§ããK3sã§Kubernetesã¯ã©ã¹ã¿ãæ§æãããã¨ããã£ã¦çã¹ãã¼ã¹ï¼ãªã½ã¼ã¹ã§ç¨¼åããã®ã§ãCIã§ã·ã³ã°ã«ãã¼ãã ãã§ãªããã«ããã¼ãã§æ§æãããéã«ãªã¹ã¹ã¡ã§ãï¼Helmãã£ã¼ãã®ãã¹ãã¨ãï¼ã
ã¾ããK3dã§æ§ç¯ãããK3sã¯ã©ã¹ã¿ã«ã¯ãã¼ã«ã«ã¹ãã¬ã¼ã¸ãããã¤ãã¼ãä»å±ãã¦ãã¦K3dã³ãã³ããå®è¡ãããã¼ãæã®ãã¼ã«ã«ã¹ãã¬ã¼ã¸ãPVã¨ãã¦æãåºãã¦ãããPVCãããã©ã«ãã§ä»å±ããã®ã§é常ã«ä¾¿å©ã§ã1ã
ãããã¯ã¼ã¯å¨ãã«ã¤ãã¦ã¯ãK3då´ã«ãµã¼ãã¹å ¬éç¨ã®æ©è½ã¨ãã¦ãtraefikï¼ã¨ããµãã£ãï¼ã使ã£ãIngressãNodePortãå©ç¨ã§ããããã«ãªã£ã¦ãã¾ã2ã
K3dèªä½ã®ã¤ã³ã¹ãã¼ã«ãç°¡åã§ããã¼ã«ã«ç«¯æ«ãªã Homebrew ãChocolateyãScoop ã«å¯¾å¿ãã¦ãã¾ããã¾ããµã¼ãç¨éãªãã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãããç¨æãã¦ããã®ã§ä»¥ä¸ã§ä¸çºã§ã3ã
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash ã¾ã㯠curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.7.5 bash
ã¤ã³ã¹ãã¼ã«ãå®äºããã¨ãk3dã³ãã³ããå©ç¨ã§ããããã«ãªãã¾ãã
⯠k3d --help https://k3d.io/ k3d is a wrapper CLI that helps you to easily create k3s clusters inside docker. Nodes of a k3d cluster are docker containers running a k3s image. All Nodes of a k3d cluster are part of the same docker network. Usage: k3d [flags] k3d [command] Available Commands: cluster Manage cluster(s) completion Generate completion scripts for [bash, zsh, fish, powershell | psh] config Work with config file(s) help Help about any command image Handle container images. kubeconfig Manage kubeconfig(s) node Manage node(s) registry Manage registry/registries version Show k3d and default k3s version Flags: -h, --help help for k3d --timestamps Enable Log timestamps --trace Enable super verbose output (trace logging) --verbose Enable verbose output (debug logging) --version Show k3d and default k3s version Use "k3d [command] --help" for more information about a command.
ä¸è¨ã®ãã«ãã«ãããããã«ãcompletionã«ã対å¿ãã¦ãã®ã§è£å®ãå¹ãã®ã§ã¨ã¦ã便å©ã§ãã
ããã§ã¯æ¬é¡ã®Proxyç°å¢ä¸ã§ã®ããããã¤ã³ãã®è§£æ±ºã®è©±ã®åã«ãããã
K3sã®ç´¹ä»ã軽ã触ããã®ã§ããK3sã®è©±ã¯ããããã£ã¦æ¹ã¯ç®æ¬¡ããé£ãã§ãã ããã
- ã¯ããã«
- K3sã»K3dã¨ã¯ä½ãï¼
- ðããããã¤ã³ãï¼ã¯ã©ã¹ã¿æ§ç¯
- ðããããã¤ã³ãï¼ã³ã³ããã¹ããè¡æ¹ä¸æã«ãªãåé¡
- ðããããã¤ã³ãï¼K3sã¯ã©ã¹ã¿ãã¼ãã«ã©ããã£ã¦ã¯ãã£ããããã®ï¼
- æå¾ã«
- è£è¶³
K3sã»K3dã¨ã¯ä½ãï¼
K3sã¯ã彿ã®Rancher Labsï¼ç¾SUSEï¼ãã2019å¹´3æã«GAãã¾ããã
軽éããæ¦å¨ã«ã¨ãã¸ã³ã³ãã¥ã¼ãã£ã³ã°å¸å ´ã§æ³¨ç®ãéããDockerãã¼ã¹ã§ã·ã³ãã«ã«ãããã¤åºæ¥ããã¨ããéçºç°å¢åãã«ãéå®ããã¦ãã¾ãã
2020/8ã«ã¯Rancher Labsã¯K3sãCNCFï¼Cloud Native Computing Foundationï¼ã«å¯è´ãã¾ãããããã«ãããK3sã¯CNCF Sandboxããã¸ã§ã¯ãã®1ã¤ã¨ãªãã¾ããã
ã¾ããæ¬çªå©ç¨ã«ãèããCNCFèªå®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã¨ãã¦åæ ¼ãã¦ãããããã¯ããªã®ã§å®å¿ãã¦å©ç¨ã§ãã¾ãã Kubernetesã¯ã©ã¹ã¿ç®¡çãã©ãããã©ã¼ã Rancherãã¤ã³ã¹ãã¼ã«ããããã®Kubernetesã¯ã©ã¹ã¿ã¨ãã¦ãå©ç¨ã§ãã¾ã4ã
ãã®è¨äºæ¸ãã¦ã¦åãã¦ç¥ã£ãã®ã§ãããããå··ã§ã¯K3sã¯ãKubernetesã®ç縮形ããK8sãã§è»½éåããããã«ãããã5ã¤æããã®ã§ãï¼âï¼ï¼ï¼ãªã®ã§ããK3sãã ãã£ã¦è©±ãããè³ã«ããã®ã§ããããã
å®ã¯ããééã£ã¦ã¦ã K3sã®ãªãã¸ããªã®READMEã«ã¯ã以ä¸ã®ããã«è¨è¼ããã¦ã¾ããã
What's with the name? We wanted an installation of Kubernetes that was half the size in terms of memory footprint. Kubernetes is a 10 letter word stylized as k8s. So something half as big as Kubernetes would be a 5 letter word stylized as K3s. A '3' is also an '8' cut in half vertically. There is neither a long-form of K3s nor official pronunciation.
ã¤ã¾ãããããªã½ã¼ã¹ä½¿ç¨éãååã«åæ¸ãããã¨ããç®æ¨ãååã®ç±æ¥ã§ãããKubernetesã®ç縮形ã®ãK8sãã®ã8ãã縦ã«ååã«ããã3ãã強調ããæ¯å©çãªè¡¨ç¾ã¨ãããã¨ã§ãããã
ΩΩΩ<ãªããªãã ã£ã¦ã¼!?
ããã¦ã軽éåã®åãçµã¿ã¨ãã¦ä»¥ä¸ãè¡ã£ã¦ãã¾ãã
- çµã¿è¾¼ã¿5ã®ã¹ãã¬ã¼ã¸ãã©ã¤ããåé¤6
- çµã¿è¾¼ã¿ã®ã¯ã©ã¦ããããã¤ãã¼ãåé¤7
- è¤æ°ã®Kubernetesã³ã³ãã¼ãã³ãï¼ä¾: kube-apiserverãkube-controller-managerãkube-schedulerãªã©ï¼ãä¸é¨çµ±åããåä¸ããã»ã¹å ã§å®è¡ããä»çµã¿ã«å¤æ´8
- etcdãçµã¿è¾¼ã¿ã®DBï¼SQLiteï¼ã¾ãã¯å¤é¨ãã¼ã¿ã¹ãã¢ã«å¯¾å¿9
䏿¹ãK3dã«ã¤ãã¦ã¯ãåé ã§è¿°ã¹ã話ã«å ããK3sã¨ç°ãªãã®ã¯ä»¥ä¸ã®éããRancherã®ãããã¯ãã§ã¯ãªãã³ãã¥ããã£é§åã®ãããã¯ãã«ãªã£ã¦ãã¾ãã
https://k3d.io/v5.4.6/ ããå¼ç¨ Note: k3d is a community-driven project but itâs not an official Rancher (SUSE) product. Sponsoring: To spend any significant amount of time improving k3d, we rely on sponsorships:
ðããããã¤ã³ãï¼ã¯ã©ã¹ã¿æ§ç¯
åºæ¬çã«K3dã§ã¯ã©ã¹ã¿ãæ§ç¯ããã«ã¯ãk3d cluster create ã使ãã¾ãã
ãã ããProxyç°å¢ä¸ã«ç½®ãã¦ã¯ãªãã·ã§ã³ãå¿ è¦ã§ãããã®ãªãã·ã§ã³ã¯ä»¥ä¸ã§ãã
-e, --env KEY[=VALUE][@NODEFILTER[;NODEFILTER...]]
ãªã®ã§ã-e
ã¤ããã°OKã§ãã
ã£ã¦ãã¨ã¯ãã -e HTTP_PROXY=my.proxy.com
ã§OKã
ç°¡åã§ããï¼ã£ã¦æãããï¼
éããã§ãããã大äºãªã®ã¯ [@NODEFILTER[;NODEFILTER...]]
ããã§ãããã®K3dç¹æã®ã³ã³ã»ããã§ãããNODEFILTERããèã«ãªãã¾ãã
NODEFILTERã«ã¤ãã¦ã¯ãK3dã®ã³ã³ã»ããã®ãã¼ã¸ã«èª¬æãããã¾ãã
ä¸è¨ã®ããã¥ã¡ã³ãã«ããããã«ç°å¢å¤æ°ã®Key/Valueã®å¾ã« @<group>:<subset>[:<suffix>]
ã¨ãã¦Nodefilterãä»ãã¦ããå¿
è¦ãããã¾ãã
é ç® | 説æ |
---|---|
<group> |
ãã£ã«ã¿ãªã³ã°å¯¾è±¡ã®ãã¼ãã°ã«ã¼ããæå®ãã¾ãã 使ç¨å¯è½ãªå¤: server , servers , agent , agents , loadbalancer , all â ï¸ all ã¯ã¯ã©ã¹ã¿ã¼å¤é¨ã®ãµã¼ãã¼ãã¼ããã©ã³ãµã¼ï¼k3d-proxy ã³ã³ããï¼ãå«ãç¹ã«æ³¨æã |
<subset> |
鏿ããã°ã«ã¼ãå
ã§ãã©ã°ãé©ç¨ããããã¼ãã®ç¯å²ãæå®ãã¾ãã âªï¸ã¯ã¤ã«ãã«ã¼ã * : ã°ã«ã¼ãå
ã®ãã¹ã¦ã®ãã¼ãâªï¸ã¤ã³ããã¯ã¹ï¼ä¾: 0 ï¼: ã°ã«ã¼ãå
ã®æåã®ãã¼ãâªï¸ãªã¹ãï¼ä¾: 1,3,5 ï¼: ã°ã«ã¼ãå
ã®1çªç®ã3çªç®ã5çªç®ã®ãã¼ãâªï¸ç¯å²ï¼ä¾: 2-4 ï¼: ã°ã«ã¼ãå
ã®2çªç®ãã4çªç®ã®ãã¼ã |
<suffix> ï¼ãªãã·ã§ã³ï¼ |
ãã©ã°åºæã®è¿½å è¨å®ãæå®ã§ãã¾ãã ä¾: --port ãã©ã°ã§ã¯ããã¼ãã®å
¬éæ¹æ³ãè¨å®ããããã« direct ãï¼ããã©ã«ãã®ï¼proxy ãæå®ã§ãã¾ãã |
ã¤ã¾ã以ä¸ã®ããã«ãProxyã®ç°å¢å¤æ°ã®å¾ã« @all:*
ãä»ãã¦ããã°OK
ï¼ã¯ã©ã¹ã¿åã mycluster ã¨ããå ´åï¼
$ k3d cluster create mycluster \ -e "HTTP_PROXY=my.proxy.com:8080@all:*" \ -e "HTTPS_PROXY=my.proxy.com:8080@all:*" \ -e "NO_PROXY=localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,cattle-system.svc,.svc,.cluster.local,example.com,.localhost@all:*"
ã¾ãããã©ã¤ãã¼ãã¬ã¸ã¹ããªï¼myregistry.localhostï¼ãå¿ è¦ãªå ´åã¯ä»¥ä¸
$ k3d registry create myregistry.localhost --port 5000 $ k3d cluster create mycluster \ --servers 1 --agents 3 \ --registry-use k3d-myregistry.localhost:5000 \ -e "HTTP_PROXY=my.proxy.com:8080@all:*" \ -e "HTTPS_PROXY=my.proxy.com:8080@all:*" \ -e "NO_PROXY=localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,cattle-system.svc,.svc,.cluster.local,example.com,.localhost@all:*"
è£è¶³ï¼ --servers 1 --agents 3
ã«ã¤ãã¦ã¯ã アーキテクチャ | K3s ãåç
§ãã ããã
ãã§ããã¯ã©ã¹ã¿ãã¹ãã³ã¢ããããã¨ä»¥ä¸ã®ããã«K3sã®Nodeã¨ãã¦ã³ã³ãããç«ã¡ä¸ãã£ã¦ãã¾ã
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 76021db57e20 ghcr.io/k3d-io/k3d-proxy:5.6.3 "/bin/sh -c nginx-prâ¦" 40 seconds ago Up 18 seconds 80/tcp, 0.0.0.0:40563->6443/tcp k3d-mycluster-serverlb 0a2ea4336562 rancher/k3s:v1.28.8-k3s1 "/bin/k3d-entrypointâ¦" 40 seconds ago Up 27 seconds k3d-mycluster-agent-2 c50d9460fe56 rancher/k3s:v1.28.8-k3s1 "/bin/k3d-entrypointâ¦" 40 seconds ago Up 27 seconds k3d-mycluster-agent-1 c11764231dd2 rancher/k3s:v1.28.8-k3s1 "/bin/k3d-entrypointâ¦" 40 seconds ago Up 27 seconds k3d-mycluster-agent-0 e49565784e52 rancher/k3s:v1.28.8-k3s1 "/bin/k3d-entrypointâ¦" 41 seconds ago Up 37 seconds k3d-mycluster-server-0 63744543efce registry:2 "/entrypoint.sh /etcâ¦" 5 months ago Up 3 hours 0.0.0.0:5000->5000/tcp k3d-myregistry.localhost
ðããããã¤ã³ãï¼ã³ã³ããã¹ããè¡æ¹ä¸æã«ãªãåé¡
Proxyã¨ã¯é¢ä¿ãªãã®ã§ãããè¤æ°ã¯ã©ã¹ã¿ãæ§ç¯ãã¦ããéã« kubectl config use-context hoge
ã¨ãã¦ãæ¥ç¶ãããã¯ã©ã¹ã¿ã«æ¥ç¶åºæ¥ãªãå ´åãããã¾ãããããªå ´åã¯ã以ä¸ã®ã³ãã³ãã使ããã¨ã§å¾©æ´»ãã¾ãã
$ k3d kubeconfig merge <æ¥ç¶ããã¯ã©ã¹ã¿> -d
ðããããã¤ã³ãï¼K3sã¯ã©ã¹ã¿ãã¼ãã«ã©ããã£ã¦ã¯ãã£ããããã®ï¼
ãããProxyã¨ã¯é¢ä¿ãªãã®ã§ãããK3sãã¼ãå ã«å ¥ã£ã¦ä¸ã®ç¶æ ã確èªãããå ´åãããã¾ãããããªå ´åã¯ãç´æ¥K3sãã¼ãã³ã³ããã«å ¥ã£ã¦ããã°ããã§ãã
$ docker exec k3d-spark-server-0 crictl images --digests $ docker exec -ti k3d-spark-server-1 crictl pull k3d-myregistry.localhost:5000/scserver:3.5.1
ð¡ K3sãã¼ãã«ã¯ããã©ã«ãã§crictlã³ãã³ããå©ç¨åºæ¥ãããã«ãªã£ã¦ã¾ãï¼ã¹ããã¼ï¼
æå¾ã«
ãããã ã£ãã§ããããã
ãããã¥ã¡ã³ãã¡ããã¨èªããããã«ãã¡ããðªãã£ã¦è¨ããããããã¾ã§ãªãã§ãããã¾ããç®ãæ»ãã£ã¦ããããã£ã¦äºã§ãã
ãããæ©ä¼ã«K3dãK3så§ãã¦ã¿ãã£ã¦æ¹ã¯æ¯éãRancherJPã§å ±æãã¦ã¿ã¾ãããï¼ä»¥ä¸ãããå¾ ã¡ãã¦ãã¾ãï¼
ï¼Â´-`ï¼.。oOï¼çªç¶ã®éå¶ããã®å®£ä¼ï¼
2025/1é ã«ã¯ãªã³ã©ã¤ã³ã2025/2ã«ã¯æ±äº¬ã§ãªãã©ã¤ã³ã§Meetupãããããªãã¨èãã¦ãã®ã§ãã°ã«ã¼ãã«å
¥ã£ã¦ããã ããã°éç¥ãé£ãã§ãã¾ããã£ï¼
X.comã§ã¯ #rancherjp ã§çºä¿¡ãã¦ãã®ã§ãã¡ããæ¯éã¦ã©ãããã ããï¼
ï¼Â´-`:ï¼.。oOï¼å§ãããï¼
以ä¸ãMicroAd Advent Calendar 2024 㨠Kubernetes Advent Calendar 2024 ã®4æ¥ç®ã®è¨äºã§ããã
è£è¶³
-
K3dã¨ããããã¯K3sã®æ©è½ã§ããã詳細ã¯ãã¡ããåç
§ãã ãã
docs.k3s.io↩ -
詳細ã¯ä»¥ä¸ãåç
§ãã ãã
docs.k3s.io↩ -
詳細ãªã¤ã³ã¹ãã¼ã«æ¹æ³ã«ã¤ãã¦ã¯ã以ä¸ãåç
§ãã ãã
https://k3d.io/v5.7.5/#releases↩ - ãµãã¼ããããªã¯ã¹ã®Rancher Managerã«ãã表ãåç §↩
- ãã¤ã³ããªã¼ï¼in-treeï¼ãã¨ãå¼ã°ãã¾ã↩
- READMEã¾ãã¯ããªã¥ã¼ã ã¨ã¹ãã¬ã¼ã¸ | K3s ãåç §↩
- READMEãããã¯ã¼ãã³ã°ãµã¼ãã¹ | K3s ãåç §↩
- K3sã®ã¢ã¼ããã¯ãã£ã®å³ãåç §ããã¨ã³ã³ãã¼ãã³ããå¥ãã¦ãããç¹ç·ã§ããã»ã¹ã¨ãã¦å²ã¾ãã¦ãããã¨ãåããã¾ãã↩
-
K3sã®ã¢ã¼ããã¯ãã£ã®å³ãåç
§ããã¨ãã¯ã©ã¹ã¿å¤é¨ã®PostgreSQLãMySQLãetcdã«å¯¾å¿ãã¦ãããã¨ãåããã¾ãã詳細ã¯ä»¥ä¸ãåç
§ãã ããã
docs.k3s.io↩