minikube搭建k8s

环境:centos7,docker18

minikube搭建k8s

说明

minikube是最接近原生kubernetes的本地单机版集群,支持大部分kubernetes功能,用于学习和开发k8s。支持Linux、Windows、Mac
官网安装文档

安装前提

  • 一台物理机或者虚拟机,物理机CPU大于2核vcpu、2G内存、20G磁盘,此处以CentOS7.9.2009为例
  • 可连接网络
  • 包括一个容器或者虚拟机管理引擎,此处以Docker为例
  • 此处以Linux服务器为例,如CentOS7.9.2003

安装步骤

前置操作(可选)

为了减少部署minikube时可能遇到的一些问题,建议以安装原生kubernets的一些操作系统设置为准,当前未验证不执行以下步骤的可能造成的影响,我会给出执行步骤的意见,请自行取舍。

升级内核(推荐)

原因:使用Containerd建议使用内核4.x以上,否则会有内核版本控制的告警

  • 检查当前内核版本,如果低于4.x建议升级
    awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
  • 添加elrepo源
    rpm -Uvh https://mirrors.aliyun.com/elrepo/elrepo/el7/x86_64/RPMS/elrepo-release-7.0-5.el7.elrepo.noarch.rpm
  • 检查有哪些可以的版本(可选,可以直接执行下一步安装最新)
    yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
  • 安装内核
    # 安装最新稳定版
    yum --enablerepo=elrepo-kernel install kernel-lt -y
    # 安装指定版本
    yum --enablerepo=elrepo-kernel install kernel-lt-5.4.180-1.el7.elrepo -y
  • 生成 grub 配置文件
    grub2-mkconfig -o /boot/grub2/grub.cfg
  • 再次查看可用内核版本,并更改启动顺序
    # 更改启动顺序,此处0为最新安装的内核的序号
    grub2-set-default 0
  • 重启并检查当前生效内核版本
    #重启
    reboot
    #检查生效的内核
    uname -r
升级docker

原因:较新版本的kubernetes需要的版本较高,当前minikube官方建议是18.09及以上

  • 查看当前docker版本,低于18.09则继续升级docker version
  • 卸载当前安装的docker
    yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate
  • docker-engine安装 yum-utils 包 ,设置存储库yum install -y yum-utils
    yum-config-manager \
    --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum update -y
  • 安装特定版本的docker(可选)
    # 查看当前可用docker版本
    yum list docker-ce --showduplicates | sort -r
    # 安装指定版本
    yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
    # 安装最新版本(推荐)
    yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 启动docker并设置自动启动
    systemctl enable docker
    systemctl start docker
禁用SELinux

原因: 当前kubelet不支持SElinux模式。必须关闭以允许容器访问主机文件系统、使Pod网络正常工作
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

关闭防火墙(可选)

systemctl stop firewalld

禁用swap分区

原因:原生 kubernetes不禁用swap分区会对性能有较大影响,此处继承
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

时间同步(可选)

注1:可以使用ntp或者chronyd,且两者不能同时使用,此处使用chronyd为例
注2:chronyd默认同步pool.ntp.org 项目中的公共服务器,也可同步其他服务器,如阿里ntp服务器
yum -y install chrony
systemctl start chronyd
systemctl enable --now chronyd
# 与公共服务器同步时间
chronyc sources

卸载 networkmanager(可选)

systemctl stop NetworkManager
yum remove NetworkManager -y

安装minikube

  • 获取minikube
  • 启动(基本命令)
    minikube start
  • 建议的启动命令
    minikube start --force --driver=docker --cni calico --image-mirror-country='cn' --container-runtime=containerd

注1:安装1.24.1版本及以上,因为kubernetes弃用了dockershim,改用containerd作为CRI,因此必须指定–container-runtime=containerd,否则kubelet无法正常启动,这个也是高版本无法正常minikube start,但是指定低于1.24.1版本就可以启动的原因
注2:–image-mirror-country='cn’是使用国内阿里云仓库代替国外谷歌仓库,解决网络慢、不通的问题,实际使用时(2023.3 2)发现谷歌仓库访问正常,阿里云仓库安装最新kubernetes版本时缺少部分镜像,所以能不加此参数时就不加
注3:如果–image-mirror-country='cn’还是拉不动镜像,比如cni指定calico网络时,无法拉取对应镜像,则建议将–image-mirror-country='cn’替换为 --registry-mirror=https://registry.docker-cn.com,当前测试可行

配置dashboard为固定service,使用proxy代理到宿主机器

dashboard配置yaml

vi  kubernetes-dashboard-nodeport-svc.yaml 

配置文件为下面的内容

apiVersion: v1
kind: Service
metadata:name: kubernetes-dashboard-nodeport-svcnamespace: kubernetes-dashboardlabels:addonmanager.kubernetes.io/mode: Reconcilek8s-app: kubernetes-dashboardkubernetes.io/minikube-addons: dashboard
spec:selector:k8s-app: kubernetes-dashboardtype: NodePortports:- protocol: TCPport: 9090targetPort: 9090nodePort: 30000

启动dashboard的service并开启代理,测试通过宿主机ip访问dashboard

#创建dashboard的service
kubectl apply -f kubernetes-dashboard-nodeport-svc.yaml 
#启动代理服务
#kubectl expose deployment kubernetes-dashboard/kubernetes-dashboard-nodeport-svc --type=LoadBalancer --port=30000
kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$' --port=30000 &

打开宿主机ip对应的地址:
http://172.168.12.128:30000/api/v1/namespaces/kubernetes-dashboard/services/kubernetes-dashboard-nodeport-svc/proxy
kubernetes-dashboard/kubernetes-dashboard-nodeport-svc
显示下面的页面即为dashboard页面
在这里插入图片描述

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

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

相关文章

配置HBase和zookeeper

一、上传文件 二、解压 tar -zxf ./zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/ tar -zxf ./hbase-2.3.5-bin.tar.gz -C ../soft/ 三、改名字 mv ./zookeeper-3.4.5-cdh5.14.2/ zk345 mv ./hbase-2.3.5/ hbase235 四、配置映射 vim /etc/profile#ZK export ZOOKEEPE…

宝塔部署node后使用pm2管理上传文件路径失效问题

如何进行文件上传&#xff1f; node上传文件 vue3 elementPlus 组件封装 在本地或者以宝塔终端的形式允许 上传后是没问题的&#xff0c;直接默认对multer直接写入路径就可以了 const multer require(multer) const upload multer({ dest: ./public/avataruploads/ }) …

(十二)VBA常用基础知识:worksheet的各种操作之sheet移动

当前sheet确认 把sheet1移动到sheet3前边 Sub Hello()10Worksheets("Sheet1").Move Before:Worksheets("Sheet3") End Sub3. 把sheet2移动到sheet1后边 Sub Hello()11Worksheets("Sheet2").Move after:Worksheets("Sheet1") End Sub…

ARM 汇编指令集——汇编中三种符号(汇编指令、伪指令、伪操作)、汇编基本格式、数据操作指令、跳转指令、特殊功能寄存器操作指令、内存操作指令、混合编程

目录 一、汇编中三种符号&#xff08;汇编指令、伪指令、伪操作&#xff09; 二、汇编基本格式 三、数据操作指令 3.1 数据搬移指令mov/mvn ① 示例 ② 立即数 3.2 移位操作指令lsl/lsr/asr/ror 示例 3.3 位运算操作指令and/orr/eor/bic ① 示例1 ② 示例2 3.4 算数…

【云计算】从云计算到边缘计算

从云计算到边缘计算 1.前言2.边缘计算概述2.1 边缘计算的定义2.2 边缘计算的价值 3.边缘计算服务商3.1 CDN 服务商3.1.1 Akamai3.1.2 网宿科技 3.2 移动运营商3.2.1 中国移动3.2.2 中国电信3.2.3 中国联通3.3.4 AT&#xff06;T 3.3 硬件厂商3.3.1 Intel3.3.2 Arm 3.4 云计算服…

使用 LangChain 和 Elasticsearch 对私人数据进行人工智能搜索

关于本博文的所有代码可以在地址下载&#xff1a;GitHub - liu-xiao-guo/python-vector-private 我将在本博文中其中深入研究人工智能和向量嵌入的深水区。 ChatGPT 令人大开眼界&#xff0c;但有一个主要问题。 这是一个封闭的托管系统。 在一个被大型网络公司改变的世界里生…

iOS——present相关属性以及dismiss多级的方法

push和present 两者的区别 push: push由视图栈控制&#xff0c;每一个视图都入栈&#xff0c;调用之前的视图则需要出栈&#xff0c;可返回任意一层&#xff0c;一般用于同一业务不同界面之间的切换。 push是由UINavigationController管理的视图控制器堆栈&#xff0c;在wind…

MySQL学习笔记

目录 注释1、启动和关闭MYSQL服务2、库的增删改查3、表的增删改查3.1 创建表3.2 修改表3.3 删除 4、数据类型4.1 字符串&#xff1a;char(num) 与 varchar(num)的区别4.2 整型4.3 浮点型4.4 日期型4.5 枚举型 注释 单行注释&#xff1a;#注释文字&#xff08;没空格&#xff09…

如何运用yolov5训练自己的数据(手把手教你学yolo)

在这篇博文中&#xff0c;我们对YOLOv5模型进行微调&#xff0c;用于自定义目标检测的训练和推理。 目录 引言&#xff1a; YOLOv5是什么&#xff1f; YOLOv5提供的模型 YOLOv5提供的功能 使用YOLOv5进行自定义目标检测训练 自定义训练的方法 自定义训练代码 准备数据集 …

对话ChatGPT:AIGC时代下,分布式存储的应用与前景

随着科技的飞速发展&#xff0c;我们正步入一个被称为AIGC时代的全新阶段&#xff0c;人工智能、物联网、大数据、云计算成为这个信息爆炸时代的主要特征。自2022年11月以来&#xff0c;ChatGPT的知名度迅速攀升&#xff0c;引发了全球科技爱好者的极大关注&#xff0c;其高超的…

【跟小嘉学习区块链】二、Hyperledger Fabric 架构详解

系列文章目录 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 文章目录 系列文章目录[TOC](文章目录) 前言一、Hyperledger 社区1.1、Hyperledger(面向企业的分布式账本)1.2、Hyperledger社区组织结构 二、Hype…

AI-Chat,一款集全网ai功能的应用(附下载链接)

AI-Chat是一款综合性的聊天机器人&#xff0c;集成了多种先进的模型和功能。它采用了GPT4.0、联网版GPT和清华模型等多种模型&#xff0c;使得其具备更强大的语言处理能力。同时&#xff0c;AI-Chat还融合了AI绘画模型&#xff0c;例如Stable Diffusion绘画、文生图、图生图、艺…

数据结构与算法基础-(2)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

ElasticSearch - 分布式搜索引擎底层实现——倒排索引

目录 一、ElasticSearch 1.1、ElasticSearch 是什么&#xff1f; 1.2、ElasticStack 是什么? 1.3、正向索引和倒排索引 1.3.1、正向索引 1.3.2、倒排索引 a&#xff09;倒排索引的创建过程&#xff1a; b&#xff09;倒排索引的查询过程&#xff1a; c&#xff09;分…

LeetCode讲解篇之347. 前 K 个高频元素

347. 前 K 个高频元素 文章目录 347. 前 K 个高频元素题目描述题解思路题解代码 题目描述 题解思路 根据数组频率倒序排序, 然后返回前k的个数据 题解代码 func topKFrequent(nums []int, k int) []int {m : make(map[int]int, 0)for i : len(nums) - 1; i > 0; i-- {m[n…

一拖三快充线(USB-C转三充)的解决方案--LDR6020P

DR6020P 是带有 3 组 6 路 DRP USB-C 及 PD 通信协议处理模块和 USB2.0 Device 功能的 16 位 RISC MCU&#xff0c;内置 8K16 位 MTP 程序存储器&#xff08;可烧录 1000 次&#xff09;&#xff0c;512 字节的数据存储器&#xff08;SRAM&#xff09;。内置 LDO 5V 输出&#…

滑动窗口9.23

1876.长度为3且各字符不同的子字符串 1876. 长度为三且各字符不同的子字符串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/substrings-of-size-three-with-distinct-characters/?envTypelist&envId24zW97w8自写思路&#xff1a; 数组充当哈希表…

Mysql004:用户管理

前言&#xff1a;本章节讲解的是mysql中的用户管理&#xff0c;包括&#xff08;管理数据用户&#xff09;、&#xff08;控制数据库的访问权限&#xff09;。 目录 1. 查询用户 2. 创建用户 3. 修改用户密码 4. 删除用户 5. 权限控制 1. 查询用户 在mysql数据库中&#xff0…

数字IC设计系列----单端口RAM、双端口RAM

一、单端口RAM原理及实现 1.1、概念/原理 在内存空间中开辟出一段固定大小的内存用于存储数据&#xff0c;每一个数据所占的bit位称之为位宽&#xff0c;这段内存空间中数据的总数称之为深度。例如reg [7:0] mem [255:0]&#xff0c;这段内存空间中每一个数据的位宽为8bit&am…

Nuxt 菜鸟入门学习笔记:路由

文章目录 路由 Routing页面 Pages导航 Navigation路由参数 Route Parameters路由中间件 Route Middleware路由验证 Route Validation Nuxt 官网地址&#xff1a; https://nuxt.com/ 路由 Routing Nuxt 的一个核心功能是文件系统路由器。pages/目录下的每个 Vue 文件都会创建一…