在linux系统中安装minikube

详细信息查看官方文档:https://minikube.sigs.k8s.io/docs/start/

部署环境:
操作系统:CentOS Linux 7 (Core)
操作系统类型:linux
架构:x86_64
minikube版本:v1.18.1
kubernetes版本:1.20.2

1、安装docker

首先需要在linux系统中安装docker,可以查看这篇文章《使用阿里云镜像快速安装docker-ce》

2、下载并安装minikube

在github上面下载对应系统的minikube安装文件:https://github.com/kubernetes/minikube/releases
我这里使用的是minikube-1.18.1-0.x86_64.rpm安装minikube,使用下面的命令下载:

wget https://github.com/kubernetes/minikube/releases/download/v1.18.1/minikube-1.18.1-0.x86_64.rpm
# 安装minikube
sudo rpm -ivh minikube-1.18.1-0.x86_64.rpm

3、启动minikube

运行下面的命名启动minikube:

minikube start --driver=docker --registry-mirror=https://registry.docker-cn.com,https://shraym0v.mirror.aliyuncs.com --embed-certs=true --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

参数说明
可以通过minikube start --help查看其它参数的详细说明,这里说明上面使用的参数

  • minikube start:启动一个本地单节点kubernetes集群。
  • --driver=docker:指定驱动为docker,默认为自动检测(virtualbox, vmwarefusion, hyperv, vmware, docker, ssh)中的一个。
  • --registry-mirror=https://registry.docker-cn.com:使用国内的镜像地址来提高拉取镜像的速度,可以设置多个用,分割即可。
  • --embed-certs=true:如果为true,将在kubeconfig中嵌入证书,默认为false,在kubeconfig中将以绝对路径的方式读取证书文件。
  • --image-mirror-country=cn:需要使用的镜像的国家/地区代码,留空以使用全球代码,对于中国大陆用户,请将其设置为 cn
  • --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers:设置用来拉取 Kubernetes 集群所需镜像的仓库,如果无法访问gcr.io可以设置为 "auto" 让minikube 为你自动选择可以访问的镜像仓库。对于中国大陆用户可以设置registry.cn-hangzhou.aliyuncs.com/google_containers,但是我设置此参数导致有的镜像无法拉取。

遇到的问题

1、 不能使用root用户启动docker driver

* minikube v1.18.1 on Centos 7.9.2009 (amd64)
* Using the docker driver based on user configuration
* 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.

解决方法:

# 添加一个用户
adduser minikube
# 将该用户添加到docker组 --> gpasswd -a 用户名 用户组
gpasswd -a minikube docker
# 切换到该用户
su minikube -
# 将当前用户切换到docker组
newgrp - docker

2、 检查到Docker cgroup驱动为 "cgroupfs",推荐使用 "systemd"

警告内容如下:

[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/

官方文档表示,更改设置,令容器运行时和kubelet使用systemd作为cgroup驱动,以此使系统更为稳定。
两种解决方法:
一、编辑docker配置文件/etc/docker/daemon.json, 添加如下内容:

"exec-opts": ["native.cgroupdriver=systemd"]

重启docker

systemctl daemon-reload
systemctl restart docker

二、编辑/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd
systemctl daemon-reload
systemctl restart docker

设置完成后通过docker info命令可以看到Cgroup Driver为systemd

docker info |grep Cgroup

Cgroup Driver: systemd
Cgroup Version: 1

3、 storage-provisioner无法拉取镜像:ImagePullBackOff

image.png

原因分析:
使用如下命令查看storage-provisioner拉取了哪个镜像:

kubectl get pod storage-provisioner  -n kube-system -o yaml |grep image
# 输出如下内容
image: registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v4

使用如下命令登录minikube节点,尝试手动拉取镜像:

# 登录minikube节点
$ minikube ssh
# 手动拉取镜像 任然无法拉取
$ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v4
Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

查看minikube中拉取的镜像,发现问题的原因:storage-provisioner已经正常拉取下来了,原来的镜像标签中多了一级路径k8s-minikube

image.png

解决方式
使用如下命令修改storage-provisioner的部署文件
将原来的registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v4
修改为:registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v4

kubectl edit pod storage-provisioner  -n kube-system
image.png

4、安装并配置kubectl

查看kubernetes官网地址:https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/
1、使用下面命令下载最新的发行版本:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

要下载特定版本,将命令中的 $(curl -L -s https://dl.k8s.io/release/stable.txt) 部分替换为指定版本。
例如,要下载 Linux 上的版本 v1.20.0,输入:

curl -LO https://dl.k8s.io/release/v1.20.0/bin/linux/amd64/kubectl

2、安装kubeclt

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

3、查看kubectl的版本

kubectl version --client

5、启动minikube helm3插件

helm3 新特性

1. 去除Tiller 和 helm serve
现在helm命令通过kubeconfig 直接操作k8s集群,类似于kubectl
Helm使用与kubectl上下文相同的访问权限,也无需再使用helm init来初始化Helm
这点在helm部署和使用上方便了很多,也减少了服务发布可能遇到的因为tiller引起的异常
而且移除了 helm serve 的功能,不再本地提供chart仓库能力

2. 预定义仓库被移除,添加helm hub
helm search 现在区分 repo 和hub
repo 是自己手动添加的源
hub 是公共的helm仓库
手动添加阿里云的charts仓库

helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

3. Values 支持 JSON Schema 校验器
当我们运行 helm install 、 helm upgrade 、 helm lint 、 helm template 命令时,JSON Schema 的校验会自动运行,如果失败就会立即报错,这样等于是先都校验了一遍,再创建。

4. helm install 时需要指定 Release Name,开启自动生成需要 --generate-name 参数

安装helm

下载helm客户端https://github.com/helm/helm/releases
helm安装官方文档https://helm.sh/docs/intro/install/
选择对应系统的helm客户端下载,我这里使用下面的命令下载:

# 下载helm
wget https://get.helm.sh/helm-v3.5.3-linux-amd64.tar.gz 
# 解压
tar -zxvf helm-v3.5.3-linux-amd64.tar.gz
# 在解压目录下找到helm二进制文件,将helm移动到指定目录
mv linux-amd64/helm /usr/local/bin/helm
# 验证helm
helm version
version.BuildInfo{Version:"v3.5.3", GitCommit:"041ce5a2c17a58be0fcd5f5e16fb3e7e95fea622", GitTreeState:"dirty", GoVersion:"go1.15.8"}

helm使用简单介绍
helm是k8s的包管理工具
helm的常用命令:

  • helm search: search for charts
  • helm pull: download a chart to your local directory to view
  • helm install: upload the chart to Kubernetes
  • helm list: list releases of charts
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容