- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
你可能需要一个快速启动和销毁的 k8s 集群;你可能在资源受限的环境中运行 k8s 集群;你可能是一个完全的初学者,觉得搭建完整的 k8s 套件太难。那么这篇短文可能可以帮到你.
你可能见过各种丐版的 k8s 集群部署方案,比如:K3S、K3d、Kind、MicroK8S、Minikube、Docker Desktop。而今天要写的是其中之一:K3d.
为什么选择 k3d 呢,因为笔者在一个非常特殊的环境中使用 k8s:
方法 1,你可以选择使用官方提供的脚本进行安装:
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
方法 2,你也可以直接下载二进制文件,然后加入到 PATH 即可: https://github.com/k3d-io/k3d/releases 。
如果从 github 下载对你的网络来说是一种困难,你可以选择 k3d 1 或者 FastGithub 2 。
k3d.yml 是用户在创建 k3d 集群时使用的配置文件。这是一个范例的配置文件:
apiVersion: k3d.io/v1alpha4 kind: Simple metadata: name: k3s-default servers: 1 # same as `--servers 1` agents: 2 # same as `--agents 2` image: docker.io/rancher/k3s:v1.25.6-k3s1 kubeAPI: # same as `--api-port myhost.my.domain:6445` (where the name would resolve to 127.0.0.1) host: '127.0.0.1' # important for the `server` setting in the kubeconfig # hostIP: "192.168.1.200" # where the Kubernetes API will be listening on hostPort: '6445' # where the Kubernetes API listening port will be mapped to on your host system ports: - port: 80 :80 # same as `--port '8080:80@loadbalancer'` nodeFilters: - loadbalancer options: k3d: # k3d runtime settings wait: true # wait for cluster to be usable before returining; same as `--wait` (default: true) timeout: '60s' # wait timeout before aborting; same as `--timeout 60s` disableLoadbalancer: false # same as `--no-lb` disableImageVolume: false # same as `--no-image-volume` disableRollback: false # same as `--no-Rollback` loadbalancer: configOverrides: - settings.workerConnections=2048 k3s: # options passed on to K3s itself extraArgs: # additional arguments passed to the `k3s server|agent` command; same as `--k3s-arg` - arg: '--tls-san=127.0.0.1 --tls-san=ks.newbe.io' nodeFilters: - server:* kubeconfig: updateDefaultKubeconfig: true # add new cluster to your default Kubeconfig; same as `--kubeconfig-update-default` (default: true) switchCurrentContext: true # also set current-context to the new cluster's context; same as `--kubeconfig-switch-context` (default: true) registries: # define how registries should be created or used config: | # define contents of the `registries.yaml` file (or reference a file); same as `--registry-config /path/to/config.yaml` mirrors: "docker.io": endpoint: - "https://mirror.ccs.tencentyun.com"
有了配置文件,现在就可以创建一个 k3d 集群了:
k3d cluster create --config k3d.yml
可发帖可群聊的技术交流方式已经上线,欢迎通过链接,加入我们一起讨论。 https://www.newbe.pro/links/ 。
运行结果大致如下:
root@OpenWrt:/mnt/sda1/workspace
# ./k3d cluster create --config k3d.yml INFO[0000] Using config file k3d.yml (k3d.io/v1alpha4 #simple) INFO[0000] portmapping '80:80' targets the loadbalancer: defaulting to [servers:*:proxy agents:*:proxy] INFO[0000] Prep: Network INFO[0000] Created network 'k3d-k3s-default' INFO[0000] Created image volume k3d-k3s-default-images INFO[0000] Starting new tools node... INFO[0000] Starting Node 'k3d-k3s-default-tools' INFO[0001] Creating node 'k3d-k3s-default-server-0' INFO[0001] Creating node 'k3d-k3s-default-agent-0' INFO[0001] Creating node 'k3d-k3s-default-agent-1' INFO[0001] Creating LoadBalancer 'k3d-k3s-default-serverlb' INFO[0001] Using the k3d-tools node to gather environment information INFO[0001] HostIP: using network gateway 172.18.0.1 address INFO[0001] Starting cluster 'k3s-default' INFO[0001] Starting servers... INFO[0001] Starting Node 'k3d-k3s-default-server-0' INFO[0006] Starting agents... INFO[0007] Starting Node 'k3d-k3s-default-agent-0' INFO[0007] Starting Node 'k3d-k3s-default-agent-1' INFO[0010] Starting helpers... INFO[0010] Starting Node 'k3d-k3s-default-serverlb' INFO[0017] Injecting records for hostAliases (incl. host.k3d.internal) and for 4 network members into CoreDNS configmap... INFO[0019] Cluster 'k3s-default' created successfully! INFO[0019] You can now use it like this: kubectl cluster-info
这样我们就得到了一个 k3d 集群,其中包含了一个 master 节点和两个 worker 节点.
k3d 集群创建成功后,我们可以通过 k3d 命令获取 kubeconfig 文件:
k3d kubeconfig get --all
将 kubeconfig 配置好,就可以使用 kubectl 命令操作 k3d 集群了.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3d-k3s-default-server-0 Ready control-plane,master 38m v1.25.6+k3s1
k3d-k3s-default-agent-1 Ready <none> 38m v1.25.6+k3s1
k3d-k3s-default-agent-0 Ready <none> 38m v1.25.6+k3s1
可发帖可群聊的技术交流方式已经上线,欢迎通过链接,加入我们一起讨论。 https://www.newbe.pro/links/ 。
我们可以通过 kubectl 命令部署一个应用,比如 nginx:
kubectl create deployment nginx --image=nginx
kubectl create service clusterip nginx --tcp=80:80
kubectl apply -f thatfile.yaml
其中 thatfile.yaml 内容如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx annotations: ingress.kubernetes.io/ssl-redirect: 'false' spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: nginx port: number: 80
使用 curl 命令访问 nginx 服务:
curl http://localhost
这样我们就完成了一个 k3d 集群的创建和应用部署.
k3d 是一个非常好用的 k3s 集群管理工具,它可以帮助我们快速创建一个 k3s 集群,方便我们进行开发和测试。后续我们还会介绍如何使用通过其他的一些配套工具,使得我们的开发和测试更加方便.
感谢您的阅读,如果您觉得本文有用,请点赞、关注和转发.
https://newbe.pro/Mirrors/Mirrors-k3d/ ↩ 。
https://newbe.pro/Mirrors/Mirrors-FastGithub/ ↩ 。
https://k3d.io/ ↩ 。
https://k3d.io/v5.4.6/usage/exposing_services/ ↩ 。
https://thechief.io/c/editorial/k3d-vs-k3s-vs-kind-vs-microk8s-vs-minikube/ ↩ 。
https://www.cnblogs.com/haogj/p/16397876.html ↩ 。
最后此篇关于一个容器,但是一整个k8s集群的文章就讲到这里了,如果你想了解更多关于一个容器,但是一整个k8s集群的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我们可以说 O(K + (N-K)logK)相当于O(K + N logK)对于 1 < = K <= N ? 最佳答案 简短的回答是它们不等价,这取决于k 的值。如果k等于N,那么第一个复杂度是O(
我有以下解决方案,但我从其他评论者那里听说它是 O(N * K * K),而不是 O(N * K)其中 N 是 K 列表的(最大)长度,K 是列表的数量。例如,给定列表 [1, 2, 3] 和 [4,
我试图理解这些语法结构之间的语义差异。 if ((i% k) == (l % k) == 0) 和 if ((i % k) == 0 && (l % k) == 0) 最佳答案 您的特定表达式((i
我有时会使用一维数组: A = np.array([1, 2, 3, 4]) 或 2D 阵列(使用 scipy.io.wavfile 读取单声道或立体声信号): A = np.array([[1, 2
在文档聚类过程中,作为数据预处理步骤,我首先应用奇异向量分解得到U、S和Vt 然后通过选择适当数量的特征值,我截断了 Vt,这让我从阅读的内容中得到了很好的文档-文档相关性 here .现在我正在对矩
我问的是关于 Top K 算法的问题。我认为 O(n + k log n) 应该更快,因为……例如,如果您尝试插入 k = 300 和 n = 100000000,我们可以看到 O(n + k log
这个问题与另一个问题R:sample()密切相关。 。我想在 R 中找到一种方法来列出 k 个数字的所有排列,总和为 k,其中每个数字都是从 0:k 中选择的。如果k=7,我可以从0,1,...,7中
我目前正在评估基于隐式反馈的推荐系统。我对排名任务的评估指标有点困惑。具体来说,我希望通过精确度和召回率来进行评估。 Precision@k has the advantage of not requ
我在 Python 中工作,需要找到一种算法来生成所有可能的 n 维 k,k,...,k 数组,每个数组都沿轴有一行 1。因此,该函数接受两个数字 - n 和 k,并且应该返回一个数组列表,其中包含沿
我们有 N 对。每对包含两个数字。我们必须找到最大数 K,这样如果我们从给定的 N 对中取 J (1 2,如果我们选择三对 (1,2),我们只有两个不同的数字,即 1 和 2。 从一个开始检查每个可能
鉴于以下问题,我不能完全确定我当前的解决方案: 问题: 给定一个包含 n 元素的最大堆,它存储在数组 A 中,是否可以打印所有最大的 K 元素在 O(K*log(K)) 中? 我的回答: 是的,是的,
我明白了: val vector: RDD[(String, Array[String])] = [("a", {v1,v2,..}),("b", {u1,u2,..})] 想转换成: RDD[(St
我有 X 个正数,索引为 x_i。每个 x_i 需要进入 K 组之一(其中 K 是预先确定的)。令 S_j 为 K_j 中所有 x_i 的总和。我需要分配所有 x_i 以使所有 S_j 的方差最小化。
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在研究寻找原始数的算法,看到下面的语句,我不明白为什么。 while (k*k <= n) 优于 while (k <= Math.sqrt(n)) 是因为函数调用吗?该调用函数使用更多资源。 更
我想找到一种尽可能快的方法来将两个小 bool 矩阵相乘,其中小意味着 8x8、9x9 ... 16x16。这个例程会被大量使用,所以需要非常高效,所以请不要建议直截了当的解决方案应该足够快。 对于
有没有一种惯用的方法来获取 Set和 Function ,并获得 Map实时取景? (即 Map 由 Set 和 Function 组合支持,例如,如果将元素添加到 Set ,则相应的条目也存在于 M
这个问题在这里已经有了答案: Can a local variable's memory be accessed outside its scope? (20 个答案) returning addr
给定一个矩阵:- k = [1 2 3 ; 4 5 6 ; 7 8 NaN]; 如果我想用 0 替换一个数字,比如 2,我可以使用这个:k(k==2) =
我是一名优秀的程序员,十分优秀!