minikube,搭建+镜像加速,坚持 3 分钟,带你玩的明明白白

news2024/11/24 11:16:08

一、 安装 cri-docker

  1. 下载安装
# 在 https://github.com/Mirantis/ 下载
https://github.com/Mirantis/

tar -xvf cri-dockerd-0.3.1.amd64.tgz

cp cri-dockerd/cri-dockerd /usr/bin/

chmod +x /usr/bin/cri-dockerd

# 确认已安装版本
cri-dockerd --version
  1. 配置启动文件
    cri-docker.service
# 创建cri-docker.service配置文件
vi /lib/systemd/system/cri-docker.service


[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

cri-docker.socket

# 创建cri-docker.socket配置文件
vi /lib/systemd/system/cri-docker.socket


[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

  1. 启动
systemctl daemon-reload

systemctl start docker.service

systemctl enable cri-docker

systemctl status docker.service

二、 安装 crictl

  1. 下载地址 https://github.com/kubernetes-sigs/cri-tools/releases
  2. 解压
    sudo tar zxvf crictl-xx-linux-amd64.tar.gz -C /usr/local/bin

三、 搭建 minikube

  1. 安装 docker 见docker离线搭建
  2. 安装 minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

sudo install minikube-linux-amd64 /usr/local/bin/minikube
  1. 安装 kubectl
wget -c "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 -m 0755 kubectl /usr/local/bin/kubectl
  1. 开启dashboard
minikube addons enable metrics-server

kubectl proxy --port=45396 --address='0.0.0.0' --disable-filter=true --accept-hosts='^.*' &

minikube dashboard --url &
  1. 外部浏览器访问
    a. 确认关闭防火墙
    b. 将下图的IP:Port 替换成外部IP:45396,然后在浏览器中打开即可
    在这里插入图片描述

  2. 基本命令

# 启动集群 --driver=docker (默认)
minikube start --force --image-mirror-country='cn' --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
# 查看节点。kubectl 是一个用来跟 K8S 集群进行交互的命令行工具
kubectl get node
# 停止集群
minikube stop
# 清空集群
minikube delete --all
# 安装集群可视化 Web UI 控制台
minikube dashboard

# other
# 将外部 docker 环境映射到 minikube 的 docker 环境
eval $(minikube docker-env)
  1. nginx 测试
# 创建 nginx 测试
kubectl create deployment nginx --image=nginx

# 创建 service 暴露端口
# port 为service 暴露端口,target-port 为目标容器端口
kubectl expose deployment nginx --port=6001 --target-port=80 --type=NodePort

# 创建端口转发 web 访问端口 :service 暴露端口
kubectl port-forward --address 0.0.0.0 service/nginx 8001:6001 &

  1. 加载宿主机 docker(解决 minikube 中 docker 无法pull 问题,且设置镜像加速比较麻烦,这个方法目前最好)
# 示例
# 宿主机执行(宿主机配置过加速)
docker pull mysql

minikube image load mysql

示例,可复制为 yaml 文件,或者复制代码在dashboard中执行

  1. 示例搭建mysql
apiVersion: apps/v1
kind: Deployment # 副本控制器RC
metadata:
 name: mysql #RC 的名称,全局唯一
 namespace: default # 默认空间
spec:
 replicas: 1 #Pod 副本的期待数量
 selector:
   matchLabels:
     app: mysql # 符合目标的Pod拥有此标签
 template: # 根据此模版创建Pod的副本
   metadata:
     labels:
       app: mysql # Pod副本拥有的标签,对应RC的Selector
   spec:
     containers: # Pod的内容的定义部分
       - name: mysql # 容器的名称
         image: mysql # 容器对应的Docker Image
         imagePullPolicy: IfNotPresent
         ports:
           - containerPort: 3306 # 容器应用监听的端口号
         env:
           - name: MYSQL_ROOT_PASSWORD # 设置mysql的初始化密码
             value: "123456" # 设置mysql的初始化密码
         volumeMounts:
           - name: mysql-data
             mountPath: /var/lib/mysql
     volumes:
       - name: mysql-data
         hostPath:
           path: /var/lib/mysql
---
apiVersion: v1
kind: Service # 表明是Kubernetes Service
metadata:
 name: mysql # Service 的全局唯一名称
spec:
 type: NodePort
 selector:
   app: mysql
 ports: # Service 提供服务的端口
   - port: 3306 # Service 对应的Pod拥有这里定义的标签
     targetPort: 3306
  1. 示例搭建 redis
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  labels:
    app: redis
spec:
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis
        imagePullPolicy: IfNotPresent
#        command: ["redis-server","/etc/redis/redis.conf"]
        ports:
        - containerPort: 6379
 
---
kind: Service
apiVersion: v1
metadata:
  name: redis
spec:
  type: NodePort
  selector:
    app: redis
  ports:
  - port: 6379

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

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

相关文章

一篇让你精通JWT,妥妥的避坑指南~

视频教程传送门:JWT 两小时极简入门:JWT实战应用与防坑指南~_哔哩哔哩_bilibiliJWT 两小时极简入门:JWT实战应用与防坑指南~共计12条视频,包括:01.课程介绍与前置知识点、02.JWT概念、03.JWT组成等,UP主更多…

一个例子让你彻底弄懂分布式系统的CAP理论

1 推荐的文章 下面这篇知乎文章是我见过的最简单易懂的一篇,把CAP定义以及为什么AP和CP只能二选一以及场景特定下选AP还是CP作为系统目标等讲解明明白白 谈谈分布式系统的CAP 2 个人对上面这篇文章的的一些补充 可用性可以人为设置一个阈值,比如用户体…

openPOWERLINK源码(最新)在stm32单片机上的移植指南

最近着了powerlink的道,连续几晚十二点前没睡过觉。不得不说兴趣这东西劲太大了,让人睡不着。喜欢上研究POWERLINK,最新版的源码结构挺清晰的,移植并测试了嵌入式linux作为从站和电脑主站之间的通信,挺有趣的。接下来想…

路由器配置方法(固定地址)

前言 由于学校给分配了IP地址,因此我们的路由器接入的时候不能选择自动接入方式,而要选择固定地址方式。 step 1 我们首先先将路由器接上网线,这里注意一定要接wan口 因为路由器分为两个口,wan口是入口,lan口是出口…

第十二届蓝桥杯青少组国赛Python真题,包含答案

第十二届蓝桥杯青少组国赛Python真题 一、选择题 第 1 题 单选题 设sHi LanQiao,运行以下哪个选项代码可以输出“LanQiao”子串 () 答案:A 第 2 题 单选题 已知a-2021.0529,运行以下哪个选项代码可以输出“2021.05”() 答案:…

2023.05.12 C高级 day4

有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下 #!/bin/bash for i in 1 2 3 4 dotouch m$i.txtmkdir m$imv m$i.txt ./m$i/m$i.txt done 运行结果 2. 使用break关键字打印九九乘法表,提示&am…

【2023/05/12】Z3

Hello!大家好,我是霜淮子,2023倒计时第7天。 Share Listen,my heart,to the whispers of the world with which it makes love to you. 译文: 静静的听,我的心呀,听那世界的低语,这是它对你求…

黑客必备工具:Hydra的完整安装和使用指南

安装Hydra 1.安装必要的依赖库 在终端中执行以下命令,安装Hydra所需的依赖库: sudo apt-get install build-essential checkinstall libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebi…

经典HTML前端面试题总结

经典HTML前端面试题总结 1. 1简述一下你对 HTML 语义化的理解?.1.2 标签上 title 与 alt 属性的区别是什么?1.3 iframe的优缺点?1.4 href 与 src?1.5 HTML、XHTML、XML有什么区别1.6 知道img的srcset的作用是什么?1.7 …

代码随想录算法训练营第五十九天

代码随想录算法训练营第五十九天| 503.下一个更大元素II,42. 接雨水 503.下一个更大元素II42. 接雨水复杂单调栈整合单调栈 503.下一个更大元素II 题目链接:下一个更大元素II 因为可以循环,直接拼一个nums在nums后面就行了。 class Solutio…

[OGeek2019]babyrop

小白垃圾笔记不建议阅读。。。。 这道题额………………做了好几天。。 更离谱的是还把ubuntu16给玩坏了。 师傅说kali可以打通,气得我连夜下卡里 后来发现不是版本的问题,是我的脚本的问题。libc写的不对。 先分析这道题。 32位程序。没有canary&…

串口与wifi模块

经过以下学习,我们掌握: AT指令与wifi模块的测试方法:通过CH340直接测试,研究各种AT指令下wifi模块的响应信息形式。编程,使用串口中断接收wifi模块对AT指令的响应信息以及透传数据,通过判断提高指令执行的…

C语言函数大全-- w 开头的函数(1)

C语言函数大全 本篇介绍C语言函数大全-- w 开头的函数 1. wcscat 1.1 函数说明 函数声明函数功能wchar_t * wcscat(wchar_t *dest, const wchar_t *src);用于将一个宽字符字符串追加到另一个宽字符字符串的末尾 参数: dest : 目标字符串src &#xf…

29.Mybatis—多表操作与注解开发

目录 一、Mybatis学习。 (1)MyBatis的多表操作。 (1.1)一对一查询。 (1.2)一对多查询。 (1.3)多对多查询。 (1.4)三种查询知识小结。 一、Mybatis学习。…

算法修炼之练气篇——练气十二层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

从零开始学习Vue3:掌握前端开发的核心技能——更新中

这里写目录标题 一、了解ts1、ts是js的超集 二、掌握ts基本写法1、数据类型2、对象使用3、类4、多态5、类修饰符6、存储器7、抽象类 一、了解ts 1、ts是js的超集 即你可以在ts中使用原生js语法:JavaScript 更多功能 TypeScript** js是弱类型语言,而t…

ESP32设备驱动-LIS3DSH加速度传感器驱动

LIS3DSH加速度传感器驱动 文章目录 LIS3DSH加速度传感器驱动1、LIS3DH介绍2、硬件准备3、软件准备4、驱动实现1、LIS3DH介绍 LIS3DSH 是一款超低功耗高性能三轴线性加速度计,属于“纳米”系列,具有嵌入式状态机,可通过编程实现自主应用。 LIS3DSH 具有 2g/4g/6g/8g/16g 的动…

八、Consul注册中心

目录 1、到官网下载Consul https://www.consul.io/ 2、解压下载好的压缩包 3、配置系统环境变量 4、WINR启动cmd窗口,输入consul启动命令 5、启动完成后访问Consul页面 http://localhost:8500(8500为Consul默认端口号) 6、server-mem…

〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

Git安装及使用

Git简介 Git是什么 Git是目前世界上最先进的分布式版本控制系统(Version Control System)。 Git的功能 Git安装 Git官网:https://git-scm.com/ 打开安装程序后,一直点击下一步,直到以下位置: 这里选择第一项,即…