minikube安装及使用

首先安装docker

docker配置文件需要加cgroup配置 否则报错
/etc/docker/daemon.json
{
"exec-opts":["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

关闭swap

swapoff -a
#修改文件
vim /etc/fstab
#注释掉
# /dev/mapper/centos-swap swap 
#确认swap已经关闭 swap 都是0说明关闭
free -m

然后安装minikub 可参考官网安装方式
https://minikube.sigs.k8s.io/docs/drivers/docker/

#官方下载安装
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
#阿里镜像下载 建议使用此地址 minikube相关镜像源也会改成国内地址
curl -LO https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
#设置驱动器
minikube config set driver docker
#运行 注意 默认方式我尝试失败 选用下边方式成功
minikube start --driver=docker
#指定kubernetes版本方式启动成功
minikube start --image-mirror-country='cn' --force --kubernetes-version=v1.23.1
#推荐使用:指定国内镜像源 下载镜像更快一些
minikube start --image-mirror-country='cn' --force --kubernetes-version=v1.23.1 --registry-mirror="https://docker.mirrors.ustc.edu.cn"
#查看是否安装成功
minikube status
#停止minikube服务
minikube stop

测试:

minikube kubectl -- get pods -A

环境变量中添加alias 可以使用kubectl

cd ~
vim .bashrc
#添加如下内容并保存
alias kubectl="minikube kubectl --"
#生效
source .bashrc
#测试
kubectl get pods -A

常用命令

#查看插件列表
minikube addons list
#安装插件dashboard
minikube addons enable dashboard
#查看连接
minikube dashboard --url
#进入minikube虚拟机 root密码应该与宿主机root密码一致(臆测)
minikube ssh
#获取ip
minikube ip
#宿主机目录影射虚拟机(亲测不好使报错未找到解决办法)
#&,表示命令在后台运行。minikube虚拟机重启后,挂载文件夹消失,即挂载是一次性的
minikube mount /path/to/HOST_MOUNT_DIRECTORY:/path/to/VM_MOUNT_DIRECTORY &
#另一种往minikube里传文件方式 scp 会提示minikube root密码 即为宿主机root密码
scp ./file.tar root@192.168.49.2:/mnt/
#开启metrics-server 指标监控
minikube addons enable metrics-server
#查看性能指标
k top node
k top pod
#开启LoadBalancer 和Ingress 以便暴露内部服务的访问
minikube addons enable metallb
minikube addons enable ingress

由于使用虚拟机安装minikube 可以暴露内部端口服务 让宿主机可以访问 以暴露dashboard为例

#查看dashboard信息
k describe pod kubernetes-dashboard-6ddd477f4f-pw6hp -n kubernetes-dashboard
#获取tags 跟端口
Labels: k8s-app=kubernetes-dashboard
Port: 9090/TCP
#把要创建的service所有的信息放进一个yaml文件中,kubernetes-dashboard-nodeport-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: kubernetes-dashboard-nodeport-svc
  namespace: kubernetes-dashboard
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
    k8s-app: kubernetes-dashboard
    kubernetes.io/minikube-addons: dashboard
spec:
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort
  ports:
    - protocol: TCP
      port: 9090
      targetPort: 9090
      nodePort: 30000
#创建服务
kubectl apply -f kubernetes-dashboard-nodeport-svc.yaml
#查看服务
minikube service kubernetes-dashboard-b5wang --namespace=kubernetes-dashboard
#使用goprox代理宿主机即可访问
proxy tcp -p ":8939" -T tcp -P "192.168.49.2:30000"

另一种暴露端口方式:

#暴露pod到宿主机方式 宿主机端口8090 pod端口80 如不指定--address 则是127.0.0.1
kubectl port-forward temp-chart-6d4cf56db6-rsxhr 8090:80 --address 10.0.8.101
#暴露service方式 将本地端口9800映射到svc的9100端口node-exporter为服务名称,如果不指定address则默认为127.0.0.1的地址
kubectl -n monitoring port-forward svc/node-exporter 9800:9100 --address 10.0.8.101

安装过程中遇到的问题:
如果报错


[root@localhost bin]# minikube start --driver=docker
* Centos 7.9.2009 上的 minikube v1.28.0
* 根据用户配置使用 docker 驱动程序
* The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
* 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.

解决方式:

 minikube start --force --driver=docker

解决start下载镜像慢

#先执行 
minikube delete
#再执行 
minikube start --force --image-mirror-country='cn'

报错:

W1110 15:13:38.345629    3653 initconfiguration.go:119] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme "unix" to the "criSocket" with value "/var/run/cri-dockerd.sock". Please update your configuration!
        [WARNING FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
        [WARNING Swap]: swap is enabled; production deployments should disable swap unless testing the NodeSwap feature gate of the kubelet
        [WARNING SystemVerification]: failed to parse kernel config: unable to load kernel module: "configs", output: "modprobe: FATAL: Module configs not found in directory /lib/modules/3.10.0-1160.el7.x86_64\n", err: exit status 1
        [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher

使用此方法解决 原因是版本问题 默认用kubernetes最新版本 支持不好

minikube start --image-mirror-country='cn' --force --kubernetes-version=v1.23.1

删除minikube重装

#停止服务
minikube stop
#删除程序即可
rm -rf /usr/local/bin/minikube
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值