K8S学习之CentOS7环境安装minikube
CentOS7搭建minikube开发环境笔记,环境要求:硬盘20GB、处理器数量2、内存3GB
K8S学习之CentOS7环境安装minikube
前言
-
安装介绍
在 windows 上,建议的安装方式是:在虚拟机上跑一个 Linux(如 CentOS),然后在 Linux 上安装 minikube。
-
安装步骤
安装minikube的过程中,主要步骤包括3个,分别是:安装docker、安装kubectl、安装minikube。
docker是容器引擎
kubernetes是容器管理工具,为了安装minikube学习kubernetes,安装docker是理所应当的。
kubectl是一个kubernetes的命令管理工具
也可以称之为一个kubernetes的一个命令行客户端。它和kubernetes的关系,类似于mysql命令和mysqld数据库服务器的管理,mysql是mysqld的一个命令管理工具,mysqld是数据库引擎。
minikube是缩小版的kubernetes
-
注意事项
在vmware虚拟机的Centos7 下安装minikube的时候,会使用–vm-driver=none,添加这个参数之后,minikube就不会创建minikubevm了,而会直接在当前系统里安装单节点的k8s集群,因为minikube会将当前的虚拟机当成minikube vm。
直接在主机(这里指 CentOS)而非虚拟机上运行 k8s 组件的形式(即 --vm-driver=none 的参数启动 minikube),所以需要安装 Docker,并且CentOS
-
关系图示
安装kubectl
-
常用命令
# 使用谷歌镜像安装 ## 下载最新版本 curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl ## 赋予权限 chmod +x ./kubectl ## 重命名 mv ./kubectl /usr/local/bin/kubectl # 使用国内阿里云源安装 curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl # 验证安装结果 kubectl version --client
安装minikube
-
下载minikube
首先记住阿里云发布的minikube地址:https://github.com/AliyunContainerService/minikube
wget https://github.com/kubernetes/minikube/releases/download/v1.7.3/minikube-linux-amd64 mv minikube-linux-amd64 minikube chmod +x minikube mv minikube /usr/bin/ # 安装最新版minikube curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 chmod +x minikube mkdir -p /usr/local/bin/ install minikube /usr/local/bin/ # 验证安装结果 minikube version
-
启动minikube
# 使用国内代理镜像 minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers # 验证启动效果 minikube status host: Running kubelet: Running apiserver: Running kubeconfig: Configured
报错信息
-
启动失败:Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.22.3 requires conntrack to be installed in root’s path
# 解决方案 yum install -y conntrack ## 或者 sudo apt-get install -y conntrack
-
minikube启动报错
报错信息
stderr: [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service' [WARNING Swap]: running with swap on is not supported. Please disable swap [WARNING FileExisting-socat]: socat not found in system path [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service' 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 [ERROR SystemVerification]: unexpected kernel config: CONFIG_CGROUP_PIDS [ERROR SystemVerification]: missing required cgroups: pids [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` To see the stack trace of this error execute with --v=5 or higher
解决方案
# 普遍配置 systemctl enable docker.service systemctl enable kubelet.service echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables ## 关闭swap分区并将/etc/fstab中swap的哪一行注释掉,就是给哪一行最前面加个# swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ## 确认swap已经关闭 free -m ## 若都显示 0 则表示关闭成功 ## socat是一个网络工具, k8s 使用它来进行 pod 的数据交互 sudo yum -y install socat ebtables ## yum install -y socat # 升级linux内核(下图验证升级成功后生成pids文件) ## 查看当前内核版本 uname -a ## Linux nbsp 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux cat /boot/config-`uname -r`| grep CGROUP ## 添加以下内容 CONFIG_CGROUP_PIDS=y ## 升级命令 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --disablerepo="*" --enablerepo="elrepo-kernel" list available yum --enablerepo=elrepo-kernel install kernel-ml cp /etc/default/grub /etc/default/grub_bak vi /etc/default/grub ## 设置 GRUB_DEFAULT=0 # 只需要修改这里即可 grub2-mkconfig -o /boot/grub2/grub.cfg systemctl enable docker.service reboot ## 重启完成后,查看内核版本是否正确 uname -r ## /etc/docker vi daemon.json (没有这个文件就新建一个)添加如下内容 { "exec-opts": ["native.cgroupdriver=systemd"] }
* CentOS7重启后docker启动失败
//关闭默认自带防火墙 systemctl stop firewalld && systemctl disable firewalld
-
VM is unable to access k8s.gcr.io, you may need to configure a proxy or set --image-repository
提示信息
This bare metal machine is having trouble accessing https://k8s.gcr.io To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
解决方案
# 删除本地集群 minikube delete minikube start # 使用国内代理镜像 minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers minikube start --vm-driver=none --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com minikube start --driver=docker --registry-mirror=https://dockerhub.azk8s.cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
minikube常用命令
-
命令汇总
# 启动k8s集群 minikube start # 启动控制台 minikube dashboard # 查看版本号 minikube version # 暂停集群 minikube pause # 停止集群 minikube stop # 配置集群内存 minikube config set memory 16384 # 查看已安装的附加服务 minikube addons list # 在老版本k8s上运行集群 minikube start -p aged --kubernetes-version=v1.16.1 # 删除所有的minikube搭建的k8s集群 minikube delete --all # 查看kubectl版本号 minikube kubectl version # 如果想直接用kubctl 需要把kubectl考的系统path路径下如/usr/local/bin目录下 find / -name kubectl cp /var/lib/docker/volumes/minikube/_data/lib/minikube/binaries/v1.20.0/kubectl /usr/local/bin/kubectl # 更多命令查看minikube --help ,查看子选项使用方式可以对子选项使用--help,如 minikube addons --help
kubectl常用命令
-
命令汇总
# 查看k8s集群信息 kubectl cluster-info # 查看所有namespace kubectl get namespaces # 查看所有节点/pod/部署/服务 (资源单复数都可以: 如 node和nodes都是合法的) kubectl get nodes/pods/deployments/services # 查看节点/pod/部署/服务详细信息 (资源单复数都可以: 如 node和nodes都是合法的) kubectl describe nodes/deployments/services # 创建一个部署 kubectl create deployment k8s-nginx --image=nginx:1.10 # 创建一个服务通过节点端口的形式暴露应用 kubectl expose deployment/k8s-nginx --type=NodePort --port=8080 # 启动一个web应用 minikube service hello-minikube # 通过端口映射把实例暴露到本地端口可以通过http://localhost:7080/访问 kubectl port-forward service/hello-minikube 7080:8080 # 创建一个部署 kubectl create deployment balanced --image=nginx:1.10 # 创建一个服务通过负责均衡的形式暴露应用 kubectl expose deployment/balanced --type=LoadBalancer --port=8080 # 创建负载均衡协调器 minikube tunnel # 创建代理 /usr/local/bin/kubectl proxy # 更多命令查看 kubectl --help 查看子选项使用方式可以对子选项使用--help,如kubectl create --help kubectl create deployment --help
参考链接
-
十分钟教会你通过minikube部署Kubernetes
https://blog.csdn.net/qq_40791253/article/details/104864586
-
centos7虚拟机安装minikube和kubectl
https://www.cnblogs.com/zhangzl419/p/15162011.html
-
安装Minikube | Kubernetes
https://v1-18.docs.kubernetes.io/zh/docs/tasks/tools/install-minikube/
-
windows安装minikube的正确姿势
https://zhuanlan.zhihu.com/p/106581787
-
一遍过,Centos7下minikube安装k8s学习环境
https://zhuanlan.zhihu.com/p/141831571
-
Minikube不能成功启动的报错分析及解决方案
https://blog.csdn.net/m0_37806791/article/details/104900429
-
k8s安装部署遇到的各种坑
https://www.modb.pro/db/188559
-
CentOS-7 升级内核
https://zhuanlan.zhihu.com/p/368879345
更多推荐
所有评论(0)