首页 > 其他分享 >如何使用minikube搭建k8s集群

如何使用minikube搭建k8s集群

时间:2024-10-08 10:02:15浏览次数:8  
标签:kubectl Minikube -- sudo 集群 minikube docker k8s

使用minikube搭建K8s(Kubernetes)集群是一个在本地快速设置Kubernetes环境的方法,特别适合用于学习和开发。以下是详细步骤:

一、环境准备

  • 操作系统:如Linux CentOS 7.9 64位。
  • CPU和内存:至少2核CPU和4GiB内存,建议2核CPU和更多内存以获得更好的性能。
  • 硬盘:至少需要20GB的硬盘空间。
  • 网络:需要网络连接以下载和访问必要的资源。
  • 容器:需要先安装Docker,建议使用较新的稳定版本,如Docker 24.0.4或Docker 20.10.x。

二、安装Docker

  1. 移除旧版本的Docker(如果已安装):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  1. 配置yum源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动Docker
systemctl enable docker --now
  1. 配置Docker加速(可选):

编辑/etc/docker/daemon.json文件,添加以下内容:

{
  "registry-mirrors": ["https://lkb2w75n.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

然后重新加载Docker配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

三、安装Minikube

  1. 下载并安装Minikube
sudo curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube

或者下载指定版本的Minikube:

sudo curl -LO https://storage.googleapis.com/minikube/releases/v1.XX.X/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube

请将v1.XX.X替换为所需的版本号。

  1. 验证Minikube安装
minikube version

四、启动Minikube集群

  1. 启动Minikube集群
minikube start --image-mirror-country='cn' --kubernetes-version=v1.XX.X

请将v1.XX.X替换为所需的Kubernetes版本号。如果需要使用root用户启动,可以添加--force参数:

minikube start --force --image-mirror-country='cn' --kubernetes-version=v1.XX.X
  1. 验证集群状态
minikube status
  1. 验证kubectl版本

由于Minikube内置的kubectl命令功能不全,建议独立安装一个kubectl。可以使用以下命令下载并安装最新版本的kubectl:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m0755 kubectl /usr/local/bin/kubectl
kubectl version --client --output=yaml

然后验证kubectl是否可以正确连接到Minikube集群:

minikube kubectl version

五、启动Kubernetes Dashboard

  1. 启动Dashboard并显示代理地址
minikube dashboard --url

该URL只能在宿主机内部访问。如果需要在宿主机之外访问,需要设置kubectl proxy代理或其他方式。

  1. 设置kubectl proxy代理
minikube kubectl -- proxy --address='0.0.0.0' --accept-hosts='^*$'&

然后修改ECS防火墙规则,允许入方向的8001端口通行。在宿主机之外的浏览器中访问:http://ECS公网IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

六、部署应用

  1. 创建一个Deployment(例如nginx):
kubectl create deployment test-nginx --image=nginx:1.7.9
  1. 查看Deployment和Pod状态
kubectl get pod,deploy
  1. 暴露Service端口
kubectl expose deploy test-nginx --port=80 --type=NodePort
  1. 查看Service状态
kubectl get svc

在Minikube环境中,可以通过minikube service命令来访问暴露的服务:

minikube service test-nginx

这将会打开一个浏览器窗口并显示服务的地址和端口。

注意事项

  • 在使用Minikube时,如果遇到任何问题,可以参考官方文档或社区提供的解决方案。
  • Minikube主要用于学习和开发环境,不建议在生产环境中使用。
  • 根据需要调整Minikube的启动参数,如CPU、内存和Kubernetes版本等。

通过以上步骤,您应该能够成功使用Minikube搭建一个本地的Kubernetes集群,并部署和运行容器化的应用程序。

标签:kubectl,Minikube,--,sudo,集群,minikube,docker,k8s
From: https://www.cnblogs.com/you-fish/p/18451091

相关文章

  • 在K8S中,什么是静态Pod?
    在Kubernetes(K8S)中,静态Pod(StaticPod)是一种特殊的Pod类型,它并不是通过KubernetesAPIServer进行管理的,而是直接存在于节点上的。静态Pod的配置文件通常放置在节点上的特定目录中,由`kubelet`直接读取并创建和管理Pod。#####1.静态Pod的特点1.**直接管理**......
  • 在K8S中,kube-proxy ipvs和 iptables 有何异同?
    在Kubernetes(K8s)中,kube-proxy是负责服务发现和负载均衡的关键组件,它支持多种代理模式,其中IPVS和iptables是两种常用的模式。以下是kube-proxy在IPVS和iptables模式下的异同点:1.相同点服务发现和负载均衡:IPVS和iptables模式都用于实现Kubernetes中的服务发现和负载均衡功能。......
  • 基于 Prometheus+Grafana+Alertmanager 搭建 K8S 云平台系统(附配置告警至QQ、钉钉)
    目录一、机器规划二、部署安装node-exporter、prometheus、Grafana、kube-state-metrics1、创建monitor-sa命名空间2、安装node-exporter组件2.1、说明2.2、应用资源清单2.3、通过node-exporter采集数据3、k8s集群中部署prometheus3.1、创建一个sa账号3.2、将sa账号moni......
  • 在K8S中,kube-proxy有何作用?
    在Kubernetes(K8S)中,kube-proxy是一个关键组件,它负责实现KubernetesService的通信和负载均衡机制。以下是kube-proxy的主要作用和工作原理:服务代理和负载均衡:kube-proxy作为集群内部的负载均衡器,负责将进入的请求转发到后端的Pod。它为每个Service提供一个稳定的IP地......
  • 在K8S中,kube-proxy ipvs原理是什么?
    在Kubernetes(K8S)中,kube-proxy的IPVS模式是一种高性能的负载均衡解决方案,它利用Linux内核的IPVS(IPVirtualServer)功能来实现服务的负载均衡。以下是kube-proxy在IPVS模式下的工作原理:监听API服务器:kube-proxy启动后会持续监听KubernetesAPI服务器上的Service资源......
  • 在K8S中,kube-proxy iptables原理是什么?
    在Kubernetes中,kube-proxy使用不同模式来实现其功能,其中iptables模式是早期广泛使用的模式之一。下面详细介绍kube-proxy使用iptables模式的基本原理。1.iptables原理概述iptables是Linux内核的一部分,用于定义网络封包过滤规则。它是一个用户空间的应用程序,用来设......
  • k8s_deployConfig
    K8s_Deploy:环境变量ingress暴露port暴露requests和limitshost绑定环境变量:spec.template.spec.containers.env常量定义,比如灰度环境定义:-name:APP_ENVvalue:GRAY有时需要获取容器的一些信息,参数名自定义,则可参数引用:-name:POD_NAME......
  • 多Master节点的k8s集群部署-完整版
    多Master节点的k8s集群部署一、准备工作1.准备五台主机(三台Master节点,一台Node节点,一台普通用户)如下:角色IP内存核心磁盘Master01192.168.116.1414G4个55GMaster02192.168.116.1424G4个55GMaster03192.168.116.1434G4个55GNode192.168.116.14......
  • 搭建Redis“主-从-从”模式集群并使用 RedisTemplate 实现读写分离
    一、理论相关我们知道,Redis具有高可靠性,其含义包括:数据尽量少丢失-AOF和RDB服务尽量少中断-增加副本冗余量,将一份数据同时保存在多个实例上,即主从库模式Redis主从库模式-保证数据副本的一致(读写分离):读操作:主库、从库都可以接收写操作:首先到主库执行,然后,主库将写......
  • 【VMware VCF】删除 SDDC Manager 映像管理中的集群映像。
    登录SDDCManagerUI,导航到生命周期管理->映像管理,这里显示了由SDDCManager映像管理的集群映像,这些映像可能是从现有vCenterServer集群中提取的,也可能是通过外部导入的映像。你可能会发现,这些列表中的映像只能被添加,无法对其进行删除,至少在WEBUI中是这样的。也许,VMwar......