Kubernetes 安装 minikube

安装 minikube

在 Ubuntu 上安装 minikube

minikube 是一个工具,它可以在本地快速运行一个单节点的 Kubernetes 集群。它主要用于:本地学习 Kubernetes、测试和开发 Kubernetes 应用程序、快速尝试 Kubernetes 的功能。

系统配置最低要求如下

  • CPU:2 核或以上

  • 内存:2GB(2048MB)或以上

  • 磁盘:约 20GB 空间

1. 安装依赖包

sudo apt update
sudo apt install -y curl wget apt-transport-https ca-certificates conntrack

2. 安装 Docker,请查看:Ubuntu安装Docker

3. 安装 kubectl,请查看:安装kubectl

4. 安装 minikube

官方 minikube 二进制下载地址:https://minikube.sigs.k8s.io/docs/start

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

可以在 win 上下载完成后,把文件上传到ubuntu系统上,也可以使用curl直接在ubuntu系统上下载

5.  拉取 kicbase

用 docker 拉取 kicbase,最新版本号在 https://github.com/kubernetes/minikube/releases 查看

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46

把拉下来的 kicbase 镜像,重新打一个tag版本,等价于告诉 Docker:“我本地已经有这个镜像了,不用去 gcr.io 下载了”,不然会在 minikube start --driver=docker 命令时去外网下载。

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46 gcr.io/k8s-minikube/kicbase:v0.0.46

6. 启动 minikube 

方式一:使用非 root 用户运行,执行以下启动 minikube 命令(非 root 用户的创建教程请继续向下查看本文)。

minikube start --driver=docker

方式二:如果使用 root 用户运行,命令如下:

sudo minikube start --driver=docker --image-mirror-country=cn --force 

安装完成。

6. 验证是否安装成功

minikube status
kubectl get nodes


部署第一个 k8s 应用之 Nginx

1. 确保你的机器上已经安装了 Docker、kubectl、minikube

2. 配置 minikube 中的 docker 的镜像加速器(注意是minikube内的docker)

进入 minikube 的 linux 中

minikube ssh

编辑 /etc/docker/daemon.json(vim 工具不存在就安装)

sudo vim /etc/docker/daemon.json

原有的内容:

{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"storage-driver":"overlay2"}

配置加速器后的内容:

{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"storage-driver":"overlay2","registry-mirrors":["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"]}

重启 docker(还在 minikube 内)

sudo systemctl daemon-reload
sudo systemctl restart docker

退出 minikube 

exit

查看 minikube 的 docker 使用的 Registry Mirrors,是不是刚配置的

minikube ssh -- docker info

查看 minikube 状态,确保显示如下

minikube status

这样就配置好了,不要重新 sudo minikube start --force,不然配置的镜像加速器会还原成默认的,如果成默认的,就重新配置一遍。

3. 创建一个 Nginx Deployment(什么是 Deployment,请查看:Kubernetes概念介绍)

创建 deployment 命令:

kubectl create deployment mynginx --image=nginx

命令解释:

  • kubectl:Kubernetes 的命令行工具,用于和集群交互。
  • create:动作:创建资源。
  • deployment:创建的资源类型是 deployment 控制器类型
  • mynginx:自定义的 Deployment 名字
  • --image=nginx:1.28.0:指定 Deployment 中使用的容器镜像为 nginx(默认从 Docker Hub 拉取)。1.28.0 是指定nginx的版本号,如果不写版本号,默认使用的是 latest 标签

删除 deployment 命令:

kubectl delete deployment mynginx

4. 查看 Deployment 和 Pod 状态

kubectl get deployment
kubectl get pods

启动失败,图片如下:

启动成功,图片如下:

查看详细的错误信息,使用如下命令:

# kubectl describe pod <pod名称>
kubectl describe pod mynginx-67bdffb495-v74km

可以看到具体的错误信息如下,说是连接了 registry-1.docker.io/v2/ 地址,这时执行第2步操作,配置国内镜像加速器即可。

5.  对外暴露服务

未完待续


minikube 常用命令

集群管理

使用 docker 启动集群:minikube start --driver=docker

启动或重启 minikube :minikube start

停止 minikube(不会删除):minikube stop

删除 minikube(卸载删除干净 minikube 相关的资源):minikube delete

查看当前 Minikube 状态:minikube status

配置设置(首次运行建议设置)

设置默认 driver 为 Docker:minikube config set driver docker

设置默认内存大小为 4096MB:minikube config set memory 4096

设置默认 CPU 数量为 2:minikube config set cpus 2

镜像操作

查看本地镜像列表(v1.31+):minikube image list

加载本地镜像到 Minikube:minikube image load <image>

在 Minikube 中构建镜像:minikube image build . --tag=myapp:1.0

访问服务

在浏览器中访问 service(NodePort):minikube service <service名>

列出所有 service 及地址:minikube service list

开启 LoadBalancer 支持:minikube tunnel

查看日志与信息

查看集群组件日志:minikube logs

SSH 进入 Minikube 虚拟机:minikube ssh

启动图形管理界面(Dashboard):minikube dashboard

版本与更新

查看 minikube 版本:minikube version

检查是否有新版本:minikube update-check

测试容器运行

运行临时测试容器:minikube kubectl -- run test --image=busybox --rm -it --restart=Never -- sh


Ubuntu 创建用户

查看当前登录用户的命令:

whoami

1. 创建新用户(如 devuser)

sudo adduser devuser

系统会提示你设置密码并填写一些个人信息(可以直接回车跳过)

2. 将用户添加到 sudo 组(让用户拥有管理员权限)

sudo usermod -aG sudo devuser

移除用户的 sudo 权限

sudo deluser devuser sudo

查看用户在哪些组

groups devuser

3. 将用户添加到 docker 组(允许使用 Docker 命令)

sudo usermod -aG docker devuser

4. 切换到新用户

su - devuser

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】深度学习:典型应用

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…

ComputeShader绘制全屏纯色纹理

参考 Getting Started With Compute Shaders In Unity 环境 Win10 Unity20194.40 全屏纯色纹理示例 使用ComputerShader逐个像素设置颜色 ComputeShader脚本 设置纹理颜色 #pragma kernel CSMainRWTexture2D<float4> Result;//纹理 half4 solidColor;//颜色[numth…

数学实验(Matlab语言环境和线性代数实验)

一、Matlab语言环境和线性代数实验 1.Matlab语言环境 Matlab简介 Matlab&#xff1a;Matrix Laboratry 矩阵实验室 Matlab 提供了强大的科学计算、灵活的程序设计流程、高质量的图形可视化与界面设计等功能&#xff0c;被广泛应用于科学计算、控制系统、信息处理等领域的分…

Android面试总结之GC算法篇

一、GC 机制核心原理与算法 面试题 1&#xff1a;Android 中为什么采用分代回收&#xff1f;分代策略如何优化 GC 效率&#xff1f; 标准答案&#xff1a; 分代回收基于对象生命周期的差异&#xff0c;将堆分为年轻代&#xff08;Young Gen&#xff09;和老年代&#xff08;Ol…

仿腾讯会议——注册登录UI

1、加载素材 2、新添加资源类 3、加载图片 4、添加左侧图片 在左侧添加一个标签 选择图片 选择图片 勾选保证图片不变形 5、修改组件名称 6、设置密码输入框 5、切换 6、编辑提示框 7、定义提交和清空的槽函数 8、设置页面标题和最先显示页面 9、清空登录信息函数实现 10、清空…

Kotlin 常见问题

以下从基础、中级、高级三个难度等级为你提供 Kotlin 面试题及参考答案&#xff1a; 基础难度 1. Kotlin 中 val 和 var 的区别是什么&#xff1f; 答案要点&#xff1a;val 用于声明不可变变量&#xff0c;类似于 Java 中的 final 变量&#xff0c;一旦赋值后就不能再重新赋…

高频数据冲击数据库的技术解析与应对方案

目录 前言一、问题现象与影响分析1.1 典型场景表现1.2 核心问题分类 二、失效根源深度剖析2.1 架构设计缺陷2.2 缓存策略缺陷 三、解决方案与最佳实践3.1 缓存架构设计3.1.1 分层缓存架构3.1.2 热点数据识别 3.2 缓存策略优化3.2.1 动态过期时间算法3.2.2 缓存更新策略对比 3.3…

[Spring] Sentinel详解

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

清除浮动的重要性及解决办法

由于父级盒子很多情况下&#xff0c;不方便给高度&#xff0c;但是子盒子浮动又不占有位置&#xff0c;最后父级盒子高度为0时&#xff0c;就会影响下面的标准流盒子。 一、为什么要清除浮动 父元素高度塌陷&#xff1a; 如果父元素内部的所有子元素都浮动了&#xff0c;并且没…

域名与官网的迷思:数字身份认证的全球困境与实践解方-优雅草卓伊凡

域名与官网的迷思&#xff1a;数字身份认证的全球困境与实践解方-优雅草卓伊凡 一、官网概念的法律与技术界定 1.1 官网的实质定义 当卓伊凡被问及”公司域名就是官网吗”这一问题时&#xff0c;他首先指出&#xff1a;”这相当于问’印着某公司logo的建筑就是该公司总部吗’…

kotlin flatMap 变换函数的特点和使用场景

Kotlin 中的 flatMap 是一个非常常用的函数&#xff0c;尤其在处理集合&#xff08;如 List、Set 等&#xff09;时。它结合了 map 和 flatten 的功能&#xff0c;常用于将多个集合扁平化为一个单一的集合。 一、flatMap 函数的特点 转换 扁平化&#xff1a; 对集合中的每个元…

java学习之数据结构:二、链表

本节介绍链表 目录 1.什么是链表 1.1链表定义 1.2链表分类 2.链表实现 2.1创建链表 1&#xff09;手动创建 2&#xff09;创建链表类进行管理链表的相关操作 2.2添加元素 1&#xff09;头插法 2&#xff09;尾插法 3&#xff09;任意位置插入 2.3删除 2.4查找 1&…

【计算机网络-应用层】解析HTTP会话保持:Cookie与Session的原理与实践

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;实现HTTP服务器 下篇文章&#xff1a;传输层协议-UDP 文章摘要&…

[ Qt ] | 第一个Qt程序

1. 创建Qt项目 我们打开Qt Create工具&#xff0c;左上角“文件”&#xff0c;新建文件。 --- --- --- --- 这个是我们的APP“走出国门”的时候&#xff0c;要关注的&#xff0c;这里就不说了。 后面这两个直接默认&#xff0c;下一步就行~~。 2. 项目默认内容 下面就是Qt C…

影刀RPA中新增自己的自定义指令

入门到实战明细 1. 影刀RPA自定义指令概述 1.1 定义与作用 影刀RPA的自定义指令是一种强大的功能&#xff0c;旨在提高流程复用率&#xff0c;让用户能够个性化定制指令&#xff0c;实现流程在不同应用之间的相互调用。通过自定义指令&#xff0c;用户可以将常用的、具有独立…

LangChain:重构大语言模型应用开发的范式革命

2022年10月22日,Harrison Chase在GitHub上提交了名为LangChain的开源项目的第一个代码版本。这个看似普通的代码提交,却悄然开启了一场重塑大语言模型(LLM)应用开发范式的技术革命。彼时,距离ChatGPT引爆全球人工智能浪潮尚有一月之遥,但LangChain的诞生已经预示了LLM技术…

区块链+医疗:破解数据共享困局,筑牢隐私安全防线

在医疗健康领域&#xff0c;数据共享与隐私保护一直是一对难以调和的矛盾。一方面&#xff0c;分散在不同机构的医疗数据&#xff08;如电子病历、检查报告、用药记录&#xff09;阻碍了诊疗效率和科研进展&#xff1b;另一方面&#xff0c;患者隐私泄露事件频发&#xff0c;加…

pycharm导入同目录下文件未标红但报错ModuleNotFoundError

此贴仅为记录debug过程&#xff0c;为防后续再次遇见 问题 问题情境 复现文章模型&#xff0c;pycharm项目初次运行 问题描述 在导入同目录下其它文件夹中的python文件时&#xff0c;未标红&#xff0c;但运行时报错ModuleNotFoundError 报错信息 未找到该模块 Traceback …

启发式算法-蚁群算法

蚁群算法是模拟蚂蚁觅食行为的仿生优化算法&#xff0c;原理是信息素的正反馈机制&#xff0c;蚂蚁通过释放信息素来引导同伴找到最短路径。把问题的元素抽象为多条路径&#xff0c;每次迭代时为每只蚂蚁构建一个解决方案&#xff0c;该解决方案对应一条完整的路径&#xff0c;…

Redis 脚本:深入理解与实践指南

Redis 脚本:深入理解与实践指南 引言 Redis 是一款高性能的键值存储数据库,广泛应用于缓存、消息队列、分布式锁等领域。脚本在 Redis 中扮演着至关重要的角色,它允许开发者以编程的方式执行复杂的操作,提高数据处理的效率。本文将深入探讨 Redis 脚本的概念、应用场景、…