在 Kubernetes 学习笔记(一) - 初上手 中一上手就尝试了最原始级的安装 Kubernetes 的方式,花了不少时间,好处是能更好的理解 Kubernete 的组成以及各节点是如何协同工作的。从《Kubernetes in Action》第二版中了解了几种简单的方法,为什么要把以下几种方式列出来呢?为了让看到上篇的同学们不至于对 Kubernetes 的安装过程望而却步。下面的前两种方式都是创立的单节点的 Kubernetes 集群。
一:启用 Docker Desktop 的 Kubernetes 特性
Docker Desktop 的 Community 版本从 18.06.0-ce-mac70 2018-07-25 开始加入了对 Kubernetes 的支持,在 2018-11-19 后,Docker Desktop 开始用 2.0.0.0 这样的版本。当前的 Docker Desktop Community 版是 2.2.0.4,所带的 Kubernetes 是 v1.15.5,要启用它只要进到它的 Preferences...
,
选择 Enable Kubernetes 就行,选上 Show system container(advanced) 将决定在 docker ps
能否看到 Kubernetes 所需的容器,例如 dns, proxy 相关的。Apply & Restart 后稍等一会,初始化完成可以查看一下 Nodes 和 Pods
完成。就这么简单。
在 Docker Desktop 下节点 docker-desktop 是一个虚拟机,可用如下命令进入后查看机器名来验证一下
$ docker run --net=host --ipc=host --uts=host --pid=host --privileged \
--security-opt=seccomp=unconfined -it --rm -v /:/host alpine chroot /host
/ # hostname
docker-desktop
这涉及到了 Docker 与 Namespace 的话题,详情请参考前一篇 Docker 容器内进程与 Namespace。
二:Minikube 集群安装
Minikube 支持 macOS, Linux 和 Windows, 它是一个单二进制文件,在 Mac 下可由 brew install minikube
安装。安装后启动一个 Kubernetes 会集群十分容易
$ minikube start
minikube v1.9.0 on Darwin 10.14.4
Using the hyperkit driver based on existing profile
Retarting existing hyperkit VM for "minikube" ...
Preparing Kubernetes v1.18.0 on Docker 19.03.8 ...
Enabling addons: default-storageclass, storage-provisioner
Done! kubectl is now configured to use "minikube"
/usr/local/bin/kubectl is v1.15.5, which may be incompatible with Kubernetes v1.18.0.
You can also use 'minikube kubectl -- get pods' to invoke a matching version
如果是在 Mac 或 Windows 上运行 minikube,它也会创建一个虚拟机,在 Linux 下可用 minikube start --vm-driver none
以当前主机系统为宿主机。
检查一下节点和 Pod 的运行情况:
它的状态可由 minikube status
查看,minikube ssh
能直接登陆到它创建的中间虚拟机中
它还有一个更诱人的功能是执行 minikube dashboard
后马上给你打开浏览器进到 Kubernetes Dashboard,登陆也免了。
$ minikube dashboard
Enabling dashboard ...
Verifying dashboard health ...
Launching proxy ...
Verifying proxy health ...
Opening http://127.0.0.1:56889/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
停止集群用 minikube stop
$ minikube stop
Stopping "minikube" in hyperkit ...
Node "m01" stopped.
三:用 kind(Kubernetes in Docker) 运行本地集群
这种方式下 Kubernetes 节点也是由 Docker 容器来运行,启动多个 Docker 容器也就很容易创建的多建了多节点的 Kubernetes 集群。kind 也是一个单一可以可执行文件。在 Mac 下也可用 brew install kind
安装,安装后运行 kind create cluster
创建 Kubernetes 集群
$ kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.17.0)
✓ Preparing nodes
✓ Writing configuration
✓ Starting control-plane
✓ Installing CNI
✓ Installing StorageClass
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Have a nice day!![]()
查看一下
删除集群的命令是 kind delete cluster
它还能创建多节点的集群,需要用一个 yaml 文件来描述,如创建一个 kind-multi-node.yaml 文件,内容如下
用 kind create cluster --config kind-multi-node.yaml
命令就能创建一个 Master 和两个 worker 的 Kubernetes 集群。
$ kind create cluster --config kind-multi-node.yaml
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.17.0)
✓ Preparing nodes![]()
![]()
✓ Writing configuration
✓ Starting control-plane
✓ Installing CNI
✓ Installing StorageClass
✓ Joining worker nodes
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community![]()
检查节点,Pod
kind 未内置 Dashboard 支持,需要的自己安装。
小结一下三种安装简单安装 Kubernete 的简单方法
- Docker Desktop Kubernetes: 单节点集群,当前最新的 Docker Desktop 2.2.0.4 所带的 Kubernetes 仍然是 v1.15.5。节点为 Docker 的宿主虚拟机
- minikube:单节点集群,当前 minikube v1.9.0, 所带 Kubernetes 是新的 1.18.0。并且自带 Dashboard, 只要 minikube dashboard 就能打开,非常的便利。节点为 minikube 新建的虚拟机
- kind(Kubernetes in Docker): 支持多节点集群,目前 kind v0.7.0 所带的 Kubernetes 是 v1.17.0。每个节点都是一个 Docker 容器。
链接:
[…] 实际上是启动了一个 Kubernetes 集群,这里是本人写的一篇 几种简单安装 Kubernetes 集群的方法, 其中就介绍到了如何用 Minikube 来体验 […]