如果您使用 macOS 或 Windows,默认 Docker 桌面安装可以启动本地 Kubernetes 集群。只需确保在 Kubernetes 的首选项中启用此功能:
对于 Linux,在本地安装 Kubernetes 最简单的方法是使用 k3s (https://k3s.io/ )。
k3s is a nod to Kubernetes (that is, k8s) but is a simplified version of it.
k3s 是 Kubernetes 的简约安装,您可以使用它来运行包含在单个二进制文件中的集群。查看 安装页面(https://github. com/rancher/k3s/blob/master/README.md)如果你想下载并运行它。
为了能够使用在 k3s 集群中运行的 Docker 版本,我们需要使用以下代码:
$ # Install k3s
$ curl -sfL https://get.k3s.io | sh -
$ # Restart k3s in docker mode
$ sudo systemctl edit --full k3s.service
# Replace `ExecStart=/usr/local/bin/k3s` with `ExecStart=/usr/local/bin/k3s server --docker`
$ sudo systemctl daemon-reload
$ sudo systemctl restart k3s
$ sudo systemctl enable k3s
$ # Allow access outside of root to KUBECTL config
$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml
$ # Add your user to the docker group, to be able to run docker commands
$ # You may need to log out and log in again for the group to take effect
$ sudo usermod -a -G docker $USER
确保安装 kubectl (k3s 默认安装一个单独的版本)。安装 kubectl 的步骤可以在 https:// 找到kubernetes.io/docs/tasks/tools/install-kubectl/。 kubectl 命令控制 Kubernetes 操作。
Check the instructions on the aforementioned page to add Bash completion, which will allow us to hit
Tab to complete some commands.
如果一切都已正确安装,您应该能够使用以下命令检查正在运行的 pod:
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
docker compose-89fb656cf-cw7bb 1/1 Running 0 1m
docker compose-api-64d7d9c945-p98r2 1/1 Running 0 1m
kube-system etcd-docker-for-desktop 1/1 Running 0 260d
kube-system kube-apiserver-docker-for-desktop 1/1 Running 0 2m
kube-system kube-controller-manager-docker-for-desktop 1/1 Running 0 2m
kube-system kube-dns-86f4d74b45-cgpsj 3/3 Running 1 260d
kube-system kube-proxy-rm82n 1/1 Running 0 2m
kube-system kube-scheduler-docker-for-desktop 1/1 Running 0 2m
kube-system kubernetes-dashboard-7b9c7bc8c9-hzpkj 1/1 Running 1 260d
注意不同的命名空间。它们都是 Kubernetes 自己创建的默认值。
转到以下页面安装 Ingress 控制器:https: //github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md。在 Docker 桌面中,您需要运行以下两个命令:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml
这将创建一个带有控制器 pod 的 ingress-nginx 命名空间。 Kubernetes 将使用该 pod 来设置 Ingress 配置。
现在,让我们来看看使用 Kubernetes 的优势。