当前位置: 首页 > news >正文

Oracle Linux 7.9 安装minikube体验

1.环境信息

前置所需:

       操作系统:Oracle Linux 7.9

       虚拟机配置:CPU:4核 内存:4G

       容器:docker   26.1.4

安装minikube后环境:

       minikube: v1.33.1

       kubernetes:v1.23.3

      minukube体验说明:使用VirtualBox安装的虚拟机Oracle Linux7.9(已经安装了Docker容器),然后在这环境中安装minikube单个k8s节点,并安装dashboard使用浏览器查看k8s的详细信息,并在节点中创建nginx,使用浏览器访问到服务。

2.安装minikube

       minikube官网Welcome! | minikubeminikube is local Kubernetesicon-default.png?t=N7T8https://minikube.sigs.k8s.io/docs/

  2.1 minkube环境要求

  • 2 CPUs or more
  • 2GB of free memory
  • 20GB of free disk space
  • Internet connection
  • Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation

   2.2 安装minikube

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

sudo install minikube-linux-amd64 /usr/local/bin/minikube

 2.3启动minikube cluster

 minikube start  --image-mirror-country=cn  \

--image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'  \

   --vm-driver=none   --kubernetes-version=v1.23.3

   2.3.1 出错,缺少conntrack-tools

 Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.23.3 requires crictl to be installed in root's path

  解决:

#安装conntrack-tools

 yum install conntrack-tools  -y

 rpm -qa | grep conntrack-tools

 再次执行,成功。

2.4 查看minikube创建的k8s集群的pod及node信息

 minikube kubectl -- get pods  -A

minikube kubectl -- get nodes

2.5 配置alias缩减minikube kubectl指令

    1.临时配置,当前会话生效

alias kubectl="minikube kubectl --"

    2.永久生效,配置当前用户.bashrc文件

 vi      ~/.bashrc 

 cat    ~/.bashrc

 source  ~/.bashrc

 验证效果:

  kubectl get pods -n kube-system   (实际应该是minikube kubectl get pods -n kube-system)

3.安装dashboard

  有一个坑,安装完minikube的集群完,文件/etc/docker/daemon.json 镜像加速的配置没了,导致后续没法下载镜像。

#创建仪表盘dashboard

minikube dashboard

 问题:dashboard一直verifying中,查看问题。

kubectl get pods -A

一直在创建中或拉取镜像。

排查问题:

#查看其中的一个,发现是镜像拉取失败的原因,应该是访问不了的原因。

kubectl describe pods kubernetes-dashboard-6f4c897964-8d7rl  -n kubernetes-dashboard

解决问题:

从国内库下载镜像metrics-scraper、dashboard

#手动pull

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8

#手动pull

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0

太难了,镜像加速最近也很不稳定(不科学下太难了),两个都下载好了。

再重新执行下minikube dashboard

如下会有一个连接地址,这个只能当前虚拟机内才可以访问。

http://127.0.0.1:36991/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

查看两个dashboard的pod都正常了

要想从当前宿主机电脑访问执行如下命令 --port指定虚拟机暴露端口,--address为当前虚拟机ip

kubectl proxy --port=9900 --address='192.168.56.103' --accept-hosts='^.*' &

浏览器访问当前路径

http://192.168.56.103:9900/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

4.部署nginx应用

4.1创建nginx

kubectl create deployment my-nginx --image=hub.atomgit.com/library/nginx:alpine

4.2暴露到集群外

kubectl expose deployment my-nginx --type=NodePort --port=80

4.3获取NodePort端口

kubectl get services

4.4宿主机浏览器访问nginx

如上使用的的port为80:31098/TCP

使用http://虚拟机ip:31098

如http://192.168.56.103:31098

Docker镜像失效参考文章:https://blog.csdn.net/weixin_50160384/article/details/139861337

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Argon2:下一代密码哈希函数
  • printk的原理及使用
  • 利用netty实现websocket ;redis的订阅发布websocket相结合
  • JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE
  • matlab 旋转图像
  • wpf VisualStateManager.VisualStateGroups 介绍和举例
  • OpenCV+Python自动填涂机读卡
  • AI大模型:开源与闭源的激烈交锋与未来展望
  • 基于缓存提高Java模板文件处理性能:减少磁盘I/O的实践与探索
  • 【jvm】栈是否存在垃圾回收
  • HCL AppScan Standard 10.6.0 发布,新增功能概览
  • 专利服务系统小程序的设计
  • Ruby遇上GUI:探索Ruby桌面应用开发的新天地
  • SpringCache源码解析(一)
  • 【R语言实战】——多模型预测及评价
  • Babel配置的不完全指南
  • gulp 教程
  • iOS 颜色设置看我就够了
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript设计模式之工厂模式
  • NSTimer学习笔记
  • redis学习笔记(三):列表、集合、有序集合
  • REST架构的思考
  • Ruby 2.x 源代码分析:扩展 概述
  • vue 配置sass、scss全局变量
  • 从零搭建Koa2 Server
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 关于extract.autodesk.io的一些说明
  • 基于HAProxy的高性能缓存服务器nuster
  • 聊聊redis的数据结构的应用
  • 首页查询功能的一次实现过程
  • 一道闭包题引发的思考
  • 用mpvue开发微信小程序
  • 优化 Vue 项目编译文件大小
  • 阿里云服务器如何修改远程端口?
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​一些不规范的GTID使用场景
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • !$boo在php中什么意思,php前戏
  • ###STL(标准模板库)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #数学建模# 线性规划问题的Matlab求解
  • (2)nginx 安装、启停
  • (55)MOS管专题--->(10)MOS管的封装
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)linux文件内容查看
  • (算法)求1到1亿间的质数或素数
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .md即markdown文件的基本常用编写语法
  • .Net Core和.Net Standard直观理解
  • .NET 分布式技术比较
  • .NET 指南:抽象化实现的基类