当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 使用minikube安装k8s单节点集群方式

使用minikube安装k8s单节点集群方式

2024年11月26日 云虚拟主机 我要评论
前言minikube 是本地 kubernetes,专注于让 kubernetes 更易于学习和开发。你所需要的只是 docker(或类似兼容的)容器或虚拟机环境,而 kubernetes 只需一个命

前言

minikube 是本地 kubernetes,专注于让 kubernetes 更易于学习和开发。

你所需要的只是 docker(或类似兼容的)容器或虚拟机环境,而 kubernetes 只需一个命令即可:minikube start

minikube 可在 macos、linux 和 windows 上快速设置本地 kubernetes 集群。我们专注于帮助应用程序开发人员和新的 kubernetes 用户,这让我们倍感自豪。

亮点

  • 支持最新的 kubernetes 版本(+6 个之前的次要版本)
  • 跨平台(linux、macos、windows)
  • 部署为虚拟机、容器或裸机
  • 多个容器运行时(cri-o、containerd、docker)
  • 直接 api 端点,实现快速图像加载和构建
  • 高级功能,如loadbalancer、文件系统挂载、featuregates 和网络策略
  • 可轻松安装 kubernetes 应用程序的附加组件
  • 支持常见的ci 环境

使用minikube安装k8s单节点集群

为了提高命令行使用效率,建议先 [安装ohmyzsh]。

yum install -y git zsh wget

wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
vi install.sh
# 修改下面两行
# repo=${repo:-ohmyzsh/ohmyzsh}
# remote=${remote:-https://github.com/${repo}.git}
# 为
# repo=${repo:-mirrors/oh-my-zsh}
# remote=${remote:-https://gitee.com/${repo}.git}
# 保存 并 执行
chmod +x install.sh && ./install.sh

# 修改主题
ls ~/.oh-my-zsh/themes
vi ~/.zshrc
# 找到 zsh_theme 行,修改为自己想用的主题名称即可

# 安装插件
git clone https://gitee.com/jsharkc/zsh-autosuggestions.git $zsh_custom/plugins/zsh-autosuggestions
git clone https://gitee.com/jsharkc/zsh-syntax-highlighting.git $zsh_custom/plugins/zsh-syntax-highlighting

# 配置插件
sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/' ~/.zshrc
# 设置别名
echo 'alias kk="kubectl"' >> ~/.zshrc
echo 'alias m="minikube"' >> ~/.zshrc # 如果安装了minikube

# 生效
source ~/.zshrc

环境准备

- 一台联网机
    - os: centos v7.9
    - cpu&mem: 2c2g+
    - disk: 20g+

minikube是本地kubernetes环境(单节点),专注于让kubernetes易于学习和开发。

1. 安装或升级到最新docker稳定版本

docker的版本分为社区版docker-ce和企业版dokcer-ee社,区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件,当然docker的版本更新比较快,截止2018.12最新版本是18.09,如果你的机器上安装了老版本的docker,那么就需要卸载,本文介绍如何完全的卸载老版本以及安装新版本docker。

1.1 删除老版本

停止docker服务

systemctl stop docker

查看当前版本

rpm -qa | grep docker

卸载软件包

yum erase docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

删除相关配置文件

find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /lib/systemd -name '*docker*' -exec rm -f {} \;

#删除以前已有的镜像和容器,非必要
rm -rf /var/lib/docker   
rm -rf /var/run/docker

1.2 安装新版本

软件包安装

yum install -y yum-utils  device-mapper-persistent-data lvm2

添加yum源

yum-config-manager \
--add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

查看可安装的版本

yum list docker-ce --showduplicates | sort -r

安装最新版本

yum install docker-ce -y

启动并开机自启

systemctl start docker
systemctl enable docker

查看docker版本

docker version 

2. 安装启动minikube

使用官方源进行安装(外网服务器下载较慢,建议手动下载再上传到机器中)

curl -lo https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 
sudo install minikube-linux-amd64 /usr/local/bin/minikube

作为替代,你可以将链接替换为加速后的github地址进行安装(需要指定版本):

https://hub.gitmirror.com/?q=https://github.com/kubernetes/minikube/releases/download/v1.31.2/minikube-linux-amd64

或者阿里云镜像安装(缺点是不支持较新的版本):

https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64

2.1 安装前说明

启动(minikube要求较新的docker版本)

# --force允许在root执行
# --kubernetes-version 指定和上一节相同的k8s版本,否则会重新下载 
minikube start --force \
--kubernetes-version=v1.23.9 \
--image-mirror-country=cn

如果多次在pulling base image...未知出错,需要清理缓存:minikube delete --all --purge,再重新下载。

2.2 启动参数说明

--driver=*** 从1.5.0版本开始,minikube缺省使用系统优选的驱动来创建kubernetes本地环境,比如您已经安装过docker环境,minikube 将使用 docker 驱动
--cpus=2: 为minikube虚拟机分配cpu核数
--memory=2048mb: 为minikube虚拟机分配内存数
--registry-mirror=*** 为了提升拉取docker hub镜像的稳定性,可以为 docker daemon 配置镜像加速,参考阿里云镜像服务
--image-mirror-country=cn 是加速minikube自身资源的下载安装
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers 使用阿里云仓库安装k8s组件
--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本,但注意如果指定1.24及以后的版本且使用阿里云镜像时会报错404,因为阿里云镜像没有同步后续版本
为docker设置代理(minikube不会读取本地的/etc/docker/daemon.json中的源来下载docker镜像)
    --docker-env http_proxy=http://proxyaddress:port
    --docker-env https_proxy=http://proxyaddress:port  
    --docker-env no_proxy=localhost,127.0.0.1,your-virtual-machine-ip/24 

2.3 查看启动状态

$ minikube status
minikube
type: control plane
host: running
kubelet: running
apiserver: running
kubeconfig: configured

2.4 minikube命令速查

minikube stop # 不会删除任何数据,只是停止 vm 和 k8s 集群。

minikube delete # 删除所有 minikube 启动后的数据。

minikube ip # 查看集群和 docker enginer 运行的 ip 地址。

minikube pause # 暂停当前的资源和 k8s 集群

minikube status # 查看当前集群状态

minikube addons list #查看minikube已安装的服务列表,这些服务可以快速启用/停止

3. 安装kubectl

kubectl 是kubernetes 的命令行工具(cli),是kubernetes 用户和管理员必备的管理工具。

3.1 先导入源

cat <<eof > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
eof

3.2 安装指定版本的kubectl

setenforce 0
yum install -y kubectl-1.23.9

安装最新版本

yum install -y kubelet-<version>

3.3 访问minikube启动的k8s集群

$ kubectl get po -a
namespace     name                               ready   status    restarts   age
kube-system   coredns-65c54cc984-ls59m           1/1     running   0          3m28s
kube-system   etcd-minikube                      1/1     running   0          3m41s
kube-system   kube-apiserver-minikube            1/1     running   0          3m42s
kube-system   kube-controller-manager-minikube   1/1     running   0          3m42s
kube-system   kube-proxy-52p75                   1/1     running   0          3m28s
kube-system   kube-scheduler-minikube            1/1     running   0          3m42s
kube-system   storage-provisioner                1/1     running   0          3m41s

4. minikube的镜像管理

当我们启动pod时,引用的镜像会从远程拉取到本地,存入minikube自身的本地镜像库中管理,而不是由docker管理。

# alias m='minikube'
root@vm-0-13-centos ~/install_k8s » m image -h
管理 images

available commands:
  build         在 minikube 中构建一个容器镜像
  load          将镜像加载到 minikube 中
  ls            列出镜像
  pull          拉取镜像
  push          推送镜像
  rm            移除一个或多个镜像
  save          从 minikube 中保存一个镜像
  tag           为镜像打标签

use "minikube <command> --help" for more information about a given command.
root@vm-0-13-centos ~/install_k8s » m image ls
registry.k8s.io/pause:3.9
registry.k8s.io/kube-scheduler:v1.27.3
registry.k8s.io/kube-proxy:v1.27.3
registry.k8s.io/kube-controller-manager:v1.27.3
registry.k8s.io/kube-apiserver:v1.27.3
registry.k8s.io/etcd:3.5.7-0
registry.k8s.io/coredns/coredns:v1.10.1
gcr.io/k8s-minikube/storage-provisioner:v5
docker.io/leigg/hellok8s:v2   <----------------
docker.io/leigg/hellok8s:v1   <----------------

也就是说,docker rmi删除的镜像是不会影响minikube的镜像库的。

即使通过m image rm删除了本地的一个minikube管理的镜像,

再启动deployment,也可以启动的,因为minikube会去远程镜像库pull,除非远程仓库也删除了这个镜像。

重新启动后,可通过m image ls再次看到被删除的镜像又出现了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com