基于minikube快速搭建kubernetes单节点环境

简介: 本文主要介绍在 Centos7 环境下基于 Minikube 来快速部署 Kubernetes 单节点集群环境,并在浏览器上访问部署在 k8s 上的 dashboard 服务。

0-封面.jpg

一、说明

本文主要介绍在 Centos7 环境下基于 Minikube 来快速部署 Kubernetes 单节点集群环境,并在浏览器上访问部署在 k8s 上的 dashboard 服务。

 

二、Minikube 介绍

Minikube 是一个基于go语言开发,易于在本地运行 Kubernetes 的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 Kubernetes 集群,对硬件资源没有太高的要求,非常适合 测试本地开发

官方文档: https://minikube.sigs.k8s.io/docs/

架构图:

1-架构图.png

运作原理:

2-运行原理.png

从 Minikube 的架构中可以看出 master 节点与其它节点合为一体,而整体则通过宿主机上的 kubectl 进行管理,这样可以更加 节省资源

简单来说就是,用户使用 Minikube CLI 管理虚拟机上的 Kubernetes 环境,比如:启动,停止,删除,获取状态等。一旦 Minikube 虚拟机启动,用户就可以使用熟悉的 Kubectl CLI 在 Kubernetes 集群上执行操作。

 

三、Minikube安装

3.1. 系统要求

3-系统要求.png

  • CUP:2核以上
  • 内存:2GB以上
  • 硬盘:需要20G
  • 网络:能连因特网(需要下载安装包),
  • 容器:需要先安装Docker或其他容器。

 

3.2. 安装前准备

3.2.1. 安装 Docker

安装步骤参考:https://www.runoob.com/docker/centos-docker-install.html

docker 的最低建议版本为 20.10.0 以上

配置阿里云加速器:https://cr.console.aliyun.com/cn-shenzhen

4-docker加速器.png

启动 docker:

systemctl start docker
systemctl enable docker.service

 

3.2.2. 创建新用户

  • 操作 minikube 需要一个具有 root 权限的用户(非root)
  • 需要将该用户添加进入 docker 用户组

    • 添加该用户至 docker 用户组:

      sudo gpasswd -a 用户名 docker
    • 更新 docker 用户组:

      newgrp docker

 

3.3. 部署

切换新创建的用户来操作 minikube,我这里创建的用户为 zlt

su zlt

安装步骤参考:https://minikube.sigs.k8s.io/docs/start/

3.3.1. 安装命令

5-安装命令.png

执行以下2个命令,下载并安装 minikube 命令:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

执行命令 minikube version 查看版本号:

6-查看版本号.png

 

3.3.2. 启动集群

执行以下命令:

minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
  • image-mirror-country 为指定使用国内源
  • kubernetes-version 指定部署的版本(最新版兼容性坑比较多,所以选择低版本)

执行成功如下图所示:

7-启动集群.png

 

3.3.3. 验证

执行命令 minikube status 查看状态,结果如下:

[zlt@zlt opt]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

 

3.3.4. 查看集群状态

可直接使用 minikube 自带的 kubectl 命令。

获取集群所有节点(机器):

minikube kubectl get nodes

获取集群所有命名空间:

minikube kubectl get namespaces

查看集群所有 Pod:

minikube kubectl -- get pods -A

 

3.3.5. Minikube 常用命令

进入节点服务器:

minikube ssh

执行节点服务器命令,例如查看节点 docker info:

minikube ssh -- docker info

删除集群, 删除 ~/.minikube 目录缓存的文件:

minikube delete

关闭集群:

minikube stop

销毁集群:

minikube stop && minikube delete

 

四、安装 kubectl

由于 minikube 内置的 kubectl 命令功能不全,所以最好独立安装一个 kubectl

用以下命令下载最新发行版:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

安装 kubectl:

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

查看版本的详细信息:

kubectl version --client --output=yaml

 

五、安装 dashboard

执行以下命令,启动 dashboard 插件:

minikube dashboard

8-安装dashboard.png

集群外部想要直接访问 dashboard 还需要设置代理才能访问,执行以下命令:

kubectl proxy --port=8001 --address='192.168.28.138' --accept-hosts='^.*'
--port 需要暴露的端口号

--address 服务器外网IP(宿主机IP)

--accept-hosts 外部访问服务器的IP(白名单)

这样就可以在浏览器上通过以下地址访问 Kubernetes Dashboard:

http://192.168.28.138:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

9-查看dashboard.png

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
Kubernetes Ubuntu Shell
wsl Ubuntu环境 创建 k8s集群
wsl Ubuntu环境 创建 k8s集群
|
1月前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
51 1
|
2月前
|
JSON Kubernetes Linux
Linux环境签发CA证书和K8s需要的证书
Linux环境签发CA证书和K8s需要的证书
30 0
|
2月前
|
Kubernetes Java 测试技术
ChaosBlade常见问题之在K8s环境下演练cpu满载报错如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
31 0
|
5天前
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
本文介绍了K8s中Job和Cronjob控制器用于非常驻容器编排的场景,以及Job容器的特点:增删频率高、生命周期短和突发并发大。文章重点讨论了Job日志采集的关键考虑点,包括容器发现速度、开始采集延时和弹性支持,并对比了5种采集方案:DaemonSet采集、Sidecar采集、ECI采集、同容器采集和独立存储采集。对于短生命周期Job,建议使用Sidecar或ECI采集,通过调整参数确保数据完整性。对于突发大量Job,需要关注服务端资源限制和采集容器的资源调整。文章总结了不同场景下的推荐采集方案,并指出iLogtail和SLS未来可能的优化方向。
|
28天前
|
存储 运维 Kubernetes
构建高效稳定的容器化运维环境:Docker与Kubernetes的协同
【4月更文挑战第14天】 在当今快速发展的云计算时代,容器技术以其轻量级、快速部署和易于管理的优势,成为现代应用交付的标准。本文将深入探讨如何通过Docker和Kubernetes的整合使用来构建一个高效且稳定的容器化运维环境。我们将分析Docker容器的基本概念,探索Kubernetes在容器编排方面的强大能力,以及两者结合所带来的益处。文章还将讨论在实际部署中可能遇到的挑战,并提出相应的解决方案。
|
2月前
|
Kubernetes 容器
搭建K8S环境单机K8S集群
搭建K8S环境单机K8S集群
38 0
|
3月前
|
Kubernetes 调度 Docker
玩转Kubernetes—使用minikube操作集群
玩转Kubernetes—使用minikube操作集群
99 0
|
4月前
|
存储 Kubernetes Docker
使用sealos快速搭建K8s集群环境
使用sealos快速搭建K8s集群环境
129 2
|
4月前
|
Kubernetes Linux 数据安全/隐私保护
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
65 0