在 WSL 2 里搭建 minikube 环境
面试到的职位使用了golang和kubernetes,所以提前自学下,先搭建个简单的开发环境。
安装 WSL 2
不做赘述。
下载minikube
这里使用binary download的方式。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
之后使用 minikube命令可以看到输出。
$ minikube minikube provisions and manages local Kubernetes clusters optimized for development workflows. 基本命令: start Starts a local Kubernetes cluster status Gets the status of a local Kubernetes cluster stop Stops a running local Kubernetes cluster delete Deletes a local Kubernetes cluster dashboard Access the Kubernetes dashboard running within the minikube cluster pause pause Kubernetes unpause 恢复 Kubernetes Images Commands: docker-env Configure environment to use minikube's Docker daemon podman-env Configure environment to use minikube's Podman service cache Add, delete, or push a local image into minikube 配置和管理命令: addons Enable or disable a minikube addon config Modify persistent configuration values profile Get or list the the current profiles (clusters) update-context Update kubeconfig in case of an IP or port change 网络和连接命令: service Returns a URL to connect to a service tunnel Connect to LoadBalancer services 高级命令: mount 将指定的目录挂载到 minikube ssh Log into the minikube environment (for debugging) kubectl Run a kubectl binary matching the cluster version node Add, remove, or list additional nodes 故障排除命令ƒ ssh-key 检索指定集群的 ssh 密钥路径 ip 检索正在运行的群集的 IP 地址 logs Returns logs to debug a local Kubernetes cluster update-check 打印当前和最新版本版本 version 打印 minikube 版本 Other Commands: completion Generate command completion for a shell Use "minikube <command> --help" for more information about a given command.
这就算安装完成了。
启动集群
因为众所周知的原因gcr.io这些谷歌的服务全都被墙拦掉了。故全部转用国内的镜像。这里镜像推荐用阿里云的镜像或者ustc。
阿里云容器镜像服务 USTC Docker Hub 源使用帮助
这里使用我阿里云的容器镜像
minikube start \ --driver docker \ --registry-mirror https://********.mirror.aliyuncs.com \ --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
如果要使用 USTC的镜像或者你的阿里云镜像,把 registry-mirror 这个参数换成你的镜像地址就好了。
输出结果
😄 Debian 10.4 上的 minikube v1.11.0 ✨ 根据现有的配置文件使用 docker 驱动程序 👍 Starting control plane node minikube in cluster minikube 🏃 Updating the running docker "minikube" container ... 🐳 正在 Docker 19.03.2 中准备 Kubernetes v1.18.3… ▪ kubeadm.pod-network-cidr=10.244.0.0/16 🔎 Verifying Kubernetes components... 🌟 Enabled addons: default-storageclass, storage-provisioner 🏄 完成!kubectl 已经配置至 "minikube"
至此就安装好了,可以测试下。
weakptr@DESKTOP-DO4OJHD:~/sources/scripts/kubernetes$ kubectl run nginx --image nginx pod/nginx created weakptr@DESKTOP-DO4OJHD:~/sources/scripts/kubernetes$ kubectl get pod NAME READY STATUS RESTARTS AGE nginx 0/1 ContainerCreating 0 6s weakptr@DESKTOP-DO4OJHD:~/sources/scripts/kubernetes$ kubectl logs nginx Error from server (BadRequest): container "nginx" in pod "nginx" is waiting to start: image can't be pulled
镜像不能pull下来,参考这篇博客提到的思路,认定是vm里(也就是kicbase这个容器里)的docker无法pull下镜像。
验证思路:
weakptr@DESKTOP-DO4OJHD:~$ docker exec -t d2c8bc89c023 docker pull nginx Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
之前指定了 registry-mirror,所以理论上来说不应该出现这种情况,除非这个registry-mirror没有生效。用docker info检查也证实了我的想法,发现确实没有生效。minikube ssh docker info
的输出里没有registry-mirror的字段。
而这个问题我在github上找到了相关的issue和解决办法。
- issue 2638: how to set up mirror-registry
- issue 6848: how to update the registry-mirror of a minikube instance
其不生效的理由是之前已经用minikube start
创建过vm,所以在此使用minikube
去指定mirror-registry
并不会更新已有vm的镜像选项。
最简单的处理方式是用minikube delete
把现有的vm删了,重新执行一遍minikube start
,带上mirror-registry
参数。或者也可以像是上面的issue 2638里的方法,minikube ssh
远程进vm,然后手动修改好daemon.json,重启docker守护进程。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
边缘计算与云原生结合加速发展
随着企业和政府建立自己的新常态,5G和边缘计算对于提供许多行业(包括制造业,医疗保健,能源和公用事业等)所需的自动化,性能和认知洞察力必不可少。 - Forbes 一、边缘计算的发展趋势 全球产业数字化正在快速的前进,各个行业对基础设施能力提出来越来越高的要求,数字化的应用不仅需要强大的算力完成大数据分析和AI建模,还需要满足现场对处理延迟和网络条件的苛刻要求,满足高度的隐私性和安全性要求,以及能在复杂的IT环境中提供统一且一致的管理能力。 边云融合即通过边缘计算和云计算的结合,使应用具备穿越物理范畴的能力,从而使数据总能在最佳的成本、算力和隐私条件下得到处理,由此得来的知识和结论也能按需应用于不同的环境。通过将边云融合进一步与云原生思想相结合,就能够实现算力的按需调度,使设备能够在无人值守的条件下,借助AI技术自动化智能化的执行任务。 从总体来说,产业对边缘计算的根本诉求在于适配性、可编程性和可管理性。其技术趋势可以总结为如下几点: 环境标准,基于标准的API环境开发和移植应用程序; 统一编排,由单一的控制面系统管理云和边缘的应用; 可伸缩性,同一套架构能够支持不同性能、不同规模的设...
- 下一篇
如何优雅地运用位运算实现产品需求?
原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 如何优雅地运用位运算实现产品需求? 在开始正文之前,我们先来说一下 Linux 的系统权限设计。在 Linux 系统中,为了保证文件的安全,对文件所有者、同组用户、其他用户的访问权限进行了分别管理。其中,文件所有者,即建立文件或目录的用户。同组用户,是所属组群中的所有用户。其他用户,指的是既不是文件所有者,也不是同组用户的其他用户。每个文件和目录都具有读取权限、写入权限和执行权限,这三个权限之间相互独立。 在 Linux 系统中,每个文件的访问权限可以用 9 个字母表示,每 3 个字母表示一类用户权限,分别代表文件创建者、同组用户、其他用户。其中,r 表示读取权限,w 表示写入权限,x 表示执行权限。通过功能模式修改文件权限,有三个部分组成,包括对象、操作和权限。 假设需要增加同组用户写入权限,下面来看一个例子。 chmod g+w /root/install.log 此外,每一类用户的访问也可以通过数字的方式进行表示。 那么...
相关文章
文章评论
共有0条评论来说两句吧...