centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

摘要:
先决条件(先假设你做完这两步骤)检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化grep-E--color'vmx|svm'/proc/cpuinfo安装kubectl判断是否成功安装kubectlkubectlversion安装MinikubeLinuxcurl-Lominikubehttps://kubernetes.oss-cn-hangzhou.aliyuncs.com/mi

先决条件(先假设你做完这两步骤)

grep -E --color 'vmx|svm' /proc/cpuinfo

判断是否成功安装kubectl

kubectl version

在这里插入图片描述

安装Minikube

Linux

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

启动

minikube start

当你执行minkube start会出现这个错误,大概意思是需要加个 --driver=none的参数

错误一:

  • * The "docker" driver should not be used with root privileges.
    * If you are running minikube within a VM, consider using --driver=none:
    * https://minikube.sigs.k8s.io/docs/reference/drivers/none/
    
    X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
    

加了参数以后那就恐怖了

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
1.[WARNING Swap]: running with swap on is not supported. Please disable swap

2.[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'

 71489 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

警告1.关闭Swap缓冲区(running with swap on is not supported. Please disable swap)

# 关闭Swap,机器重启后不生效

swapoff -a

# 修改/etc/fstab永久关闭Swap

cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')

# Redhat

sed -i "s//dev/mapper/rhel-swap/#/dev/mapper/rhel-swap/g" /etc/fstab

# CentOS

sed -i "s//dev/mapper/centos-swap/#/dev/mapper/centos-swap/g" /etc/fstab

# 修改后重新挂载全部挂载点

mount -a

# 查看Swap

free -m
cat /proc/swaps
systemctl daemon-reload
systemctl restart kubelet

警告2.kubelet service is not enabled, please run 'systemctl enable kubelet.service'

//启动kubelet服务
systemctl enable kubelet.service

错误3. FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

现在终于没啥错了

启动minikube

为了访问海外的资源,阿里云提供了一系列基础设施,请按照如下参数进行配置。其中常见参数

  • --driver=*** 从1.5.0版本开始,Minikube缺省使用本地最好的驱动来创建Kubernetes本地环境,测试过的版本 docker, kvm
  • --image-mirror-country cn 将缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作为安装Kubernetes的容器镜像仓库 (阿里云版本可选)
  • --iso-url=*** 利用阿里云的镜像地址下载相应的 .iso 文件 (阿里云版本可选)
  • --registry-mirror=***为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
  • --cpus=2: 为minikube虚拟机分配CPU核数
  • --memory=2048mb: 为minikube虚拟机分配内存数
  • --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本
minikube start --image-mirror-country cn     --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.5.0.iso  --registry-mirror=https://pe3ox7bd.mirror.aliyuncs.com     --driver="none"     --memory=2048

不出意外应该是这样的

在这里插入图片描述

启动minikube dashboard

minikube dashboard

在这里插入图片描述

dashboard 给出了一个访问地址,可以看出这个地址和端口只是k8s的虚拟地址,只能本机访问如果要想从电脑上访问服务器上虚拟机上的dashboard 你应该

添加集群对外访问代理:

nohub kubectl proxy  --port=[需要暴露的端口号] --address='[服务器IP]' --accept-hosts='^[外部访问服务器的IP]$'  >/dev/null 2>&1& 

例如:

nohup kubectl proxy  --port=41111 --address='192.168.56.165' --accept-hosts='^192.168.56.165$'  >/dev/null 2>&1& 

访问地址为:

http://192.168.56.165:41111/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default

免责声明:文章转载自《centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux面试题目2postgresql-锁相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

K8S 上部署 Redis-cluster 三主三从 集群

介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序集合。 由于Redis接受多种格式的密钥,因此可以在服务器上执行操作,从而减少了客户端的工作量。 它仅将磁盘用于持久性,而将数据库完全保存在内存中。Redis是一种流行的数据...

实践Kong for Kubernetes(K8S),kong最新2.1版本和kong-ingress-controller:0.9.1版本

先决条件 Kubernetes集群:您可以使用Minikube或GKE集群。Kong与Kubernetes的所有发行版兼容。 kubectl访问权限:您应该已经kubectl安装并配置为与Kubernetes集群通信。 为Kubernetes安装Kong 使用以下安装方法之一安装Kong for Kubernetes: YAML清单 helm K...

Prometheus实战之联邦+高可用+持久

  导航:这里主要是列出一个prometheus一些系统的学习过程,最后按照章节顺序查看,由于写作该文档经历了不同时期,所以在文中有时出现 的云环境不统一,但是学习具体使用方法即可,在最后的篇章,有一个完整的腾讯云的实战案例。   1.什么是prometheus?   2.Prometheus安装   3.Prometheus的Exporter详解   ...

Kubernetes K8S之kubectl命令详解及常用示例

Kubernetes kubectl命令详解与常用示例,基于k8s v1.17.4版本 kubectl常用示例 查看类命令 1 # 获取节点和服务版本信息 2 kubectl get nodes 3 # 获取节点和服务版本信息,并查看附加信息 4 kubectl get nodes -o wide 5 6 # 获取pod信息,默认是defau...

K8s容器资源限制

在K8s中定义Pod中运行容器有两个维度的限制:1. 资源需求:即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。如: Pod运行至少需要2G内存,1核CPU2. 资源限额:即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。 # kubectl describe node node1.zcf.com...

kubernetes 部署 traefik 以及kubernetes dashborad

前言 本来打算通过 traefik 来实现 kubernetes dashborad 的服务访问,可是在配置过程中始终报错。最后无奈只能通过nodeport来实现kubernetes dashborad的服务暴露。但是这并不代表着traefik没有用,相反由于traefik能够动态的更新kubernetes中的Pod service(我们可以理解为自动发现...