Ubuntu 20.04 使用 Minikube 部署 Kubernetes 集群

Minikube 是专为开发人员设计的开源工具,可在其本地系统上运行单节点 Kubernetes 集群。 Minikube 启动一个虚拟机并在其中运行一个 Kubernetes 集群。 然后,我们可以在本地 Kubernetes 环境中进行测试。 使用 Minikube,我们无需为 Kubernetes 集群设置多个系统。

在本指南中,我们将向我们展示 Ubuntu 20.04 上使用 Minikube 设置 Kubernetes 集群。

先决条件

  • 云平台上的全新 Ubuntu 20.04 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 4GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Ubuntu 20.04 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装所需的依赖项

首先,我们需要在服务器上安装一些必需的依赖项。 我们可以使用以下命令安装所有依赖项:

apt-get install git apt-transport-https ca-certificates curl gnupg-agent software-properties-common virtualbox virtualbox-ext-pack -y

安装完所有软件包后,我们可以继续下一步。

第 3 步 – 安装 Docker CE

Kubernetes 需要在我们的服务器中安装 Docker CE。 首先,使用以下命令添加 Docker CE 存储库:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

添加存储库后,使用以下命令安装 Docker:

apt-get install docker-ce -y

安装后,使用以下命令验证 Docker CE 版本:

docker --version

我们应该看到以下输出:

Docker version 20.10.7, build f0df350

第 4 步 – 安装 Minikube

默认情况下,Minikube 包不包含在 Ubuntu 中,因此我们需要从他们的网站下载它。

运行以下命令下载它:

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

接下来,将下载的文件移动到系统路径:

mv minikube-linux-amd64 /usr/local/bin/minikube

接下来,使用以下命令设置执行权限:

chmod +x /usr/local/bin/minikube

现在,使用以下命令验证 Minikube 版本:

minikube version

输出:

minikube version: v1.20.0
commit: c61663e942ec43b20e8e70839dcca52e44cd85ae

第 5 步 – 安装 Kubernetes 实用程序

接下来,我们需要将 Kubernetes 实用程序(包括 kubectl、kubeadm 和 kubectl)安装到我们的服务器。

首先,使用以下命令添加 Kubernetes 存储库:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

接下来,更新存储库并使用以下命令安装所有实用程序:

apt-get update -y
apt-get install kubectl kubeadm kubectl -y

第 6 步 – 使用 Minikube 启动 Kubernetes 集群

现在,我们可以使用 Minikube 启动 Kubernetes 集群,如下所示:

minikube start --driver=none

我们应该得到以下输出:

* minikube v1.20.0 on Ubuntu 20.04 (kvm/amd64)
* Using the none driver based on user configuration
* Starting control plane node minikube in cluster minikube
* Running on localhost (CPUs=2, Memory=3936MB, Disk=80568MB) ...
* OS release is Ubuntu 20.04 LTS
* Preparing Kubernetes v1.20.2 on Docker 20.10.7 ...
  - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubectl: 38.37 MiB / 38.37 MiB [-------------] 100.00% 29.81 MiB p/s 1.5s
    > kubeadm: 37.40 MiB / 37.40 MiB [-------------] 100.00% 28.73 MiB p/s 1.5s
    > kubelet: 108.73 MiB / 108.73 MiB [-----------] 100.00% 42.93 MiB p/s 2.7s
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring local host environment ...
* 
! The 'none' driver is designed for experts who need to integrate with an existing VM
* Most users should use the newer 'docker' driver instead, which does not require root!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as wer own user, we may need to relocate them. For example, to overwrite wer own settings, run:
* 
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
* 
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

我们可以使用以下命令查看集群信息:

kubectl cluster-info

输出:

Kubernetes control plane is running at https://45.58.43.101:8443
KubeDNS is running at https://45.58.43.101:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Kubernetes 将所有配置信息存储在文件 ~/.minikube/machines/minikube/config.json 中。 我们可以使用以下命令检查它:

kubectl config view

输出:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Tue, 08 Jun 2021 11:51:58 UTC
        provider: minikube.sigs.k8s.io
        version: v1.20.0
      name: cluster_info
    server: https://45.58.43.101:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Tue, 08 Jun 2021 11:51:58 UTC
        provider: minikube.sigs.k8s.io
        version: v1.20.0
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/profiles/minikube/client.crt
    client-key: /root/.minikube/profiles/minikube/client.key

要检查 Minikube 节点状态,请运行以下命令:

minikube status

输出:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

第 7 步 – 启用 Kubernetes 仪表板

接下来,我们需要启用 Kubernetes 仪表板以从 Web 浏览器访问它。

要启用仪表板,请运行以下命令:

minikube dashboard &

这将在 localhost 上启动一个 Kubernetes 仪表板。

接下来,我们需要创建一个本地代理,以便从远程计算机访问仪表板。

运行以下命令创建本地代理:

kubectl proxy &

这将在 localhost 的 8001 端口上启动一个代理。

第 8 步 – 访问 Kubernetes 仪表板

此时,可以在 localhost 的 8001 端口上访问 Kubernetes 仪表板。

接下来,我们需要在要访问 Kubernetes 集群的客户端机器上设置 SSH 端口转发。

在客户端机器上,运行以下命令来设置 SSH 端口转发:

ssh -L 12345:localhost:8001 root@wer-kubernetes-server-ip

现在,我们可以从 Web 浏览器使用 URL http://localhost:12345/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 访问我们的 Kubernetes 集群。

Kubernetes 仪表板

恭喜! 我们已在 Ubuntu 20.04 上使用 Minikube 成功设置 Kubernetes 集群。 我们现在有足够的知识来使用 Minikube 设置本地 Kubernetes 集群。 在 的专用服务器上开始使用 Minikube。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论