『』Kind + Docker 一键部署K8s实验环境( 二 )


加载docker镜像
可以使用以下命令将Docker镜像加载到集群节点中:
kind load docker-image my-custom-image
注意:如果使用命名集群 , 则需要指定要将镜像加载到的集群的名称:
kind load docker-image my-custom-image --name kind-2
此外 , 镜像archive也可以加载:
kind load image-archive /my-image-archive.tar
所以从docker创建镜像到加载流程为:
docker build -t my-custom-image:unique-tag ./my-image-dir
kind load docker-image my-custom-image:unique-tag
kubectl apply -f my-manifest-using-my-image:unique-tag
镜像编译
kind通过使用Docker容器作为''节点''来运行本地Kubernetes集群 。 使用node-image来运行K8S工件 , 比如kubeadm或kubelet 。 node-image会依次创建base-image , 并加载容器中运行所需要的docker和K8S的依赖层 。
当前 , 支持两种编译node-image的方法 。 如果主机中存在K8S源 , 则可以使用docker或bazel来构建 。 如果要指定构建类型 , 需要使用—type参数 。
如果要使用bazel源(--type=bazel)由于Kubelet , 使用的CGO需要依赖Linux GCC/glibc , 因此当前无法在Windows或MacOS上使用 。
docker如果未指定 , 则kind默认使用构建类型 。
kind build node-image --type bazel
与集群交互
创建集群后 , 可以使用kubectl 通过与它交互的一种生成的配置文件 。 默认情况下 , 如果未设置$KUBECONFIG环境变量 , 则群集访问配置存储在~/.kube/config中 。
如果设置了$KUBECONFIG环境变量 , 那么它将用作路径列表 。 修改值后 , 将在定义节的文件中对其进行修改 。 创建值后 , 将在存在的第一个文件中创建该值 。 如果链中没有文件 , 那么它将创建列表中的最后一个文件 。
可以--kubeconfig在创建集群时使用该标志 , 然后仅加载该文件 。 该标志只能设置一次 , 并且不会发生合并 。
export KUBECONFIG=''$(kind get kubeconfig-path --name=''kind'')''查看集群信息 , 可以用用kubectl cluster-info
『』Kind + Docker 一键部署K8s实验环境
本文插图
查看节点信息用kubectl get node
『』Kind + Docker 一键部署K8s实验环境
本文插图
对于多个集群 , 可以用可以使用get clusters 命令 。
例如 , 假设创建了两个集群:
kind create cluster
kind create cluster --name kind-2
当列出kind群集时 , 结果会显示:
kind get clusters
kind
kind-2
与特定集群交互 , 需要使用—context参数在kubectl中指定集群名称:
kubectl cluster-info --context kind-kind
kubectl cluster-info --context kind-2
Docker Desktop
如果要kind build node-image在MacOS或Windows上构建K8S , 则需要至少6GB的RAM专门运行Docker引擎的虚拟机(VM) , 建议使用8GB 。
Mac设置Docker内存设置方法如下:
打开''Preferences''菜单:
『』Kind + Docker 一键部署K8s实验环境
本文插图
转到Advanced页签 , 可以在此处设置 。
『』Kind + Docker 一键部署K8s实验环境
本文插图
要更改Windows Docker的资源限制 , 需要右键单击任务栏上的Moby图标 , 然后选择''Settings'' 。 如果看到''切换到Linux容器'' , 则需要先执行此操作 , 然后再打开''Settings''
『』Kind + Docker 一键部署K8s实验环境