Kubernetes安装篇(上):基于Minikube方式部署本地环境

简介: 一切先从安装开始!

一切先从安装开始! 


学习一门新的技术,一般先从安装开始,实实在在的安装完,使用它,逐步深入了解。


为了方便大家开发、学习和体验Kubernetes,Kubernetes社区提供了可以在本地部署的 minikube ,通过minikube方式可以在本地运行Kubernetes。


(Kubernetes的部署方式还有很多,本文是基于本地开发环境的部署方式,学习它足够了。想要部署一套符合生产环境的集群不是一件容易的事,随后其他篇章将会涉及。)



1、Minikube


Minikube  是一个可以在本地轻松运行 `Kubernetes` 的工具。`Minikube` 会在您的电脑中的虚拟机上运行一个单节点的`Kubernetes` 集群,以便用户对`Kubernetes`进行使用或者在之上进行`Kubernetes`的日常开发。

image.png


特征: 


minikube 运行`Kubernetes`的最新稳定版本,并支持标准的`Kubernetes`功能,例如:


  • 负载均衡:  使用 minikube tunnel 
  • 多集群:  使用 minikube start -p  
  • NodePorts:  使用 minikube service 
  • 持久卷 
  • Ingress 
  • Dashboard:  仪表盘,使用 minikube dashboard 启动。


2、安装


可以在本地虚拟机环境下安装。


由于网络访问原因,很多朋友无法直接使用 minikube 进行安装。在最新的Minikube中,已经提供了配置化的方式,可以帮助大家利用阿里云的镜像地址来获取所需Docker镜像和配置。


2.1 安装kubectl


kubectl 是一个用于管理`Kubernetes`的命令行工具,可以检查集群资源、创建、删除和更新组件,查看你的新集群,并启动实例应用程序。


(1) 使用国内阿里云源安装

[xcbeyond@localhost ~]$ curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl


(2) 查看版本


安装完,执行命令 kubectl version 查看版本,确认是否安装成功。

[xcbeyond@localhost ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:23:04Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}


2.2 安装minikube


minikube 是一个本地Kubernetes集群的实现, minikube 的主要目标是,成为本地开发Kubernetes和支持Kubernetes全部特性的最佳工具。用于在你电脑中的虚拟机上运行一个单节点的Kubernetes集群。


(1) 使用国内阿里云源安装

[xcbeyond@localhost ~]$ curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/


(2) 安装启动


可以运行命令 minikube start 来启动本地Kubernetes集群。


为了访问海外的资源,阿里云提供了一系列基础设施,请按照如下参数进行配置。其中常见参数:


  • --driver=***: 从1.5.0版本开始,Minikube缺省使用本地最好的驱动来创建Kubernetes本地环境,测试过的版本docker,kvm
  • --image-mirror-country cn: 将缺省利用`registry.cn-hangzhou.aliyuncs.com/google_containers`作为安装Kubernetes的容器镜像仓库 (阿里云版本可选)
  • --iso-url=***: 利用阿里云的镜像地址下载相应的.iso 文件(阿里云版本可选)
  • --registry-mirror=***: 为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
  • --cpus=2:为minikube虚拟机分配CPU核数
  • --memory=2048mb:为minikube虚拟机分配内存数
  • --kubernetes-version=***:minikube虚拟机将使用的kubernetes版本


启动minikube:


首次启动需要下载镜像,需要耐心等待...


如果中途失败,可再次执行命令。


[xcbeyond@localhost ~]$ minikube start --driver=docker
* Centos 7.8.2003 上的 minikube v1.13.0
* 根据现有的配置文件使用 docker 驱动程序
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Creating docker container (CPUs=2, Memory=2200MB) ...
* 正在 Docker 19.03.8 中准备 Kubernetes v1.19.0…
    > kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubectl: 41.01 MiB / 41.01 MiB [-----------] 100.00% 496.18 KiB p/s 1m24s
    > kubeadm: 37.30 MiB / 37.30 MiB [---------------] 100.00% 3.15 MiB p/s 12s
    > kubelet: 104.88 MiB / 104.88 MiB [-------------] 100.00% 3.34 MiB p/s 32s
* Verifying Kubernetes components...
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" by default


(3) 打开Kubernetes控制台


在本地(虚拟机桌面内)执行命令 minikube dashboard ,将会自动在浏览器中打开Kubernetes控制台。


(如果通过shell远程登录执行,必会出现在浏览器中打开失败的错误提示,可忽略。)

[xcbeyond@localhost ~]$ minikube dashboard
🤔  正在验证 dashboard 运行情况 ...
🚀  Launching proxy ...
🤔  正在验证 proxy 运行状况 ...
🎉  Opening http://127.0.0.1:38620/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
This tool has been deprecated, use 'gio open' instead.
See 'gio help open' for more info.


如何能够外部访问呢?只需要添加一层代理即可。  


使用proxy代理到虚拟机的指定端口,执行以下命令:

kubectl proxy --port=<指定访问端口> --address=<实际IP> --accept-hosts='^.*' &

比如:

xcbeyond@localhost ~]$ kubectl proxy --port=8001 --address='192.168.11.129' --accept-hosts='^.*' &
[1] 83066
[xcbeyond@localhost ~]$ Starting to serve on 192.168.11.129:8001


浏览器访问地址: http://192.168.11.129:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default 

image.png




好了,开始探索Kubernetes的世界吧!



参考文章:

  1. https://developer.aliyun.com/article/221687
  2. https://kubernetes.io/zh/docs/tasks/tools/
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
5天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
1月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
10天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
11天前
|
存储 人工智能 弹性计算
NVIDIA NIM on ACK:优化生成式AI模型的部署与管理
本文结合NVIDIA NIM和阿里云容器服务,提出了基于ACK的完整服务化管理方案,用于优化生成式AI模型的部署和管理。
|
5天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
2月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
2月前
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
686 10
|
3月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
2月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
148 12

热门文章

最新文章