热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Minikube:搭建部署单机Kubernetes

课程分享:课程分享:DockerKubernetes(k8s)微服务容器化实践课程分享:Kubernetes(k8s)生产级实践指南从部署

课程分享:

  1. 课程分享:Docker+Kubernetes(k8s)微服务容器化实践
  2. 课程分享:Kubernetes(k8s)生产级实践指南 从部署到核心应用

  3. 课程分享:(极客时间)深入剖析Kubernetes



安装kubectl

Kubectl 是 Kubernetes 自带的命令行工具,可以用它直接操作 Kubernetes。

在线方式

macOS,执行:

# using brew https://brew.sh/
brew install kubernetes-cli

Linux,执行:

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 && sudo mv kubectl /usr/local/bin/

Windows,执行:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/windows/amd64/kubectl.exe

离线方式

可以从kubernetes库上直接下载,方法如下:

  • step 1: 访问官方github网址:https://github.com/kubernetes/kubernetes/releases

  • step 2: 找到想使用的发布版本,在每个发布版本的最后一行有类似“CHANGELOG-1.10.md”这样的内容,点击超链进入;

  • step 3: 然后进入“Client Binaries”区域;

  • step 4: 选择和目标机器系统匹配的二进制包下载;

  • step 5: 解压缩,放入/usr/local/bin目录;


安装minikube

阿里云(推荐)

首先记住阿里云发布的minikube地址:https://github.com/AliyunContainerService/minikube

阿里云提供了最新的Minikube修改版的文件,可以直接下载使用

Mac OSX

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

Linux

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

Windows

下载 minikube-windows-amd64.exe 文件,并重命名为 minikube.exe

官网:


  • macOS 10.12 (Sierra)

    • 要求安装 hypervisor,比如 hyperkit (推荐)或 VirtualBox
    • 使用 brew : brew cask install minikube
    • 或者使用 curl: curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && sudo install minikube-darwin-amd64 /usr/local/bin/minikube
  • Windows 10

    • 要求安装 hypervisor,比如 VirtualBox (推荐)或 HyperV
    • BIOS 中必须开启 VT-x/AMD-v virtualization
    • 使用 chocolatey choco install minikube
    • 或者通过链接下载: Download and run the installer
  • Linux

    • 要求安装 kvm2 driver (推荐)或 VirtualBox
    • BIOS 中必须开启 VT-x/AMD-v virtualization
    • 使用 curl: curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube

问题1: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path


CentOS7中安装 VirtualBox

Minikube使用了VirtualBox来启动kubenetes集群;在未安装VirtualBox minikube start时会报如下错误:

Unable to start VM: create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path

建议直接使用yum源方式安装VirtualBox ,配置正确的repo文件即可:

step 1:  vim /etc/yum.repos.d/virtualbox.repo
 
step 2:   # 将以下内容复制到文件内保存,之后使用yum命令即可安装VirtualBox的安装。
 
#具体内容如下:
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
 
 
step 3:  #执行以下命令,完成VirtualBox 的安装
 
yum -y install VirtualBox-5.2


 

启动minikube

确认你的 minikube 至少是 v1.2.0:

$ minikube version
minikube version: v1.2.0

缺省Minikube使用VirtualBox驱动来创建Kubernetes本地环境

minikube start

问题2:Error: [VBOX_VTX_DISABLED] create: precreate: This computer doesn't have VT-X/AMD-v enabled

解决方式:

step 1:关闭虚拟机(注意:是关闭,不是挂起;否则为关机状态下,下图不能勾选!)

step 2 :设置虚拟化Intel VT-x/EPT

 

注意: 这里我们使用的是 VirtualBox,如果你用的其它,可能会需要另外的配置,请按照上面的链接查找。

[root@localhost ~]# minikube start
* minikube v1.3.1 on Centos 7.6.1810
! Please don't run minikube as root or with 'sudo' privileges. It isn't necessary with virtualbox driver.
* Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
* Tip: Use 'minikube start -p ' to create a new cluster, or 'minikube delete' to delete this one.
* Starting existing virtualbox VM for "minikube" ...
* Waiting for the host to be provisioned ...
* Preparing Kubernetes v1.15.2 on Docker 18.09.8 ...
* Downloading kubeadm v1.15.2
* Downloading kubelet v1.15.2
* Relaunching Kubernetes using kubeadm ... 
* Waiting for: apiserver proxy etcd scheduler controller dns
* Done! kubectl is now configured to use "minikube"


minikube start -p <集群名字>


默认集群名字是minikube

[root&#64;localhost ~]# minikube start -p K8sTest
* [K8sTest] minikube v1.3.1 on Centos 7.2.1511
! Please don&#39;t run minikube as root or with &#39;sudo&#39; privileges. It isn&#39;t necessary with virtualbox driver.
* Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
* Creating virtualbox VM (CPUs&#61;2, Memory&#61;2000MB, Disk&#61;20000MB) ...
* Preparing Kubernetes v1.15.2 on Docker 18.09.8 ...
* Pulling images ...
* Launching Kubernetes ...
* Waiting for: apiserver proxy etcd scheduler controller dns
* Done! kubectl is now configured to use "K8sTest"

通过cat ~/.kube/config 验证多了一个cluster集群

[root&#64;localhost ~]# cat ~/.kube/config
apiVersion: v1
clusters:
- cluster:certificate-authority: /root/.minikube/ca.crtserver: https://192.168.99.101:8443name: K8sTest
- cluster:certificate-authority: /root/.minikube/ca.crtserver: https://192.168.99.100:8443name: minikube
contexts:
- context:cluster: K8sTestuser: K8sTestname: K8sTest
- context:cluster: minikubeuser: minikubename: minikube
current-context: K8sTest
kind: Config
preferences: {}
users:
- name: K8sTestuser:client-certificate: /root/.minikube/client.crtclient-key: /root/.minikube/client.key
- name: minikubeuser:client-certificate: /root/.minikube/client.crtclient-key: /root/.minikube/client.key

验证

执行下面的命令&#xff1a;

$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 4m5s v1.15.0

若输出正常&#xff0c;则表示创建成功。

minikube ssh 验证k8s里的服务

但是&#xff0c;但是&#xff0c;minikube start并不代表&#xff0c;整个k8s集群搭建好了&#xff0c;因为k8s里的服务还需要起&#xff0c;比如API server&#xff0c;scheduler&#xff0c;kubelet等等&#xff0c;他们都是以容器的方式在后台启动。

那怎么判断成功了呢&#xff1f;

我们可以通过minikube ssh进到虚机里&#xff0c;然后看看是否有一些container运行起来了

minikube dashboard 


在本地运行minikube dashboard 会在本地弹出浏览器&#xff0c;就是Kubernetes的dashboard&#xff0c;那基本上恭喜您&#xff0c;安装成功了

 


问题3&#xff1a;error: failed to discover supported resources: Get https://192.168.99.100:8443/api: Service Unavailable 

$ minikube start Starting local Kubernetes v1.6.4 cluster...
... $ cat ~/.kube/config apiVersion: v1
clusters:
- cluster: certificate-authority: /root/.minikube/ca.crt server: https://192.168.99.100:8443 name: minikube
... $ kubectl run hello-minikube --image&#61;gcr.io/google_containers/echoserver:1.4 --port&#61;8000 error: failed to discover supported resources: Get https://192.168.99.100:8443/api: Service Unavailable

可以调试使用以下步骤&#xff1a;在端口8443

  1. kubectl会谈kube-apiserver做它的事。试试curl -k https://192.168.99.100:8443&#xff0c;看看是否有积极的回应。如果失败&#xff0c;则意味着kube-apiserver根本没有运行。您可以尝试重新启动虚拟机或重建minikube&#xff0c;以查看它是否第二次正常启动。

  2. 如果你觉得很勇敢&#xff0c;也可以直接调试虚拟机。在这种情况下&#xff0c;获取由minikube启动的虚拟机上的shell。运行docker ps | grep apiserver以检查kube-apiserver吊舱是否正在运行。也请尝试ps aux | grep apiserver以检查它是否本机运行。如果两者都没有显示结果&#xff0c;请使用journalctl -xef检查日志。


笔者&#xff1a;遇到这个问题&#xff0c;是重启vmware解决了&#xff0c;如果你有更好的解决方式&#xff0c;也说下&#xff0c;我补充修改


 


配置镜像加速器

为了拉取Docker Hub镜像&#xff0c;需要为 Docker daemon 配置镜像加速&#xff0c;参考阿里云镜像服务 或中科大镜像加速地址https://docker.mirrors.ustc.edu.cn&#xff0c;比如

minikube start --registry-mirror&#61;https://xxxxxx.mirror.aliyuncs.com

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-&#39;EOF&#39;
{"registry-mirrors": ["https://uy35zvn6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Minikube 命令

[root&#64;localhost ~]# minikube help
Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for
development workflows.Basic Commands:start Starts a local kubernetes clusterstatus Gets the status of a local kubernetes clusterstop Stops a running local kubernetes clusterdelete Deletes a local kubernetes clusterdashboard Access the kubernetes dashboard running within the minikube clusterImages Commands:docker-env Sets up docker env variables; similar to &#39;$(docker-machine env)&#39;cache Add or delete an image from the local cache.Configuration and Management Commands:addons Modify minikube&#39;s kubernetes addonsconfig Modify minikube configprofile Profile gets or sets the current minikube profileupdate-context Verify the IP address of the running cluster in kubeconfig.Networking and Connectivity Commands:service Gets the kubernetes URL(s) for the specified service in your local clustertunnel tunnel makes services of type LoadBalancer accessible on localhostAdvanced Commands:mount Mounts the specified directory into minikubessh Log into or run a command on a machine with SSH; similar to &#39;docker-machine ssh&#39;kubectl Run kubectlTroubleshooting Commands:ssh-key Retrieve the ssh identity key path of the specified clusterip Retrieves the IP address of the running clusterlogs Gets the logs of the running instance, used for debugging minikube, not user code.update-check Print current and latest version numberversion Print the version of minikubeOther Commands:completion Outputs minikube shell completion for the given shell (bash or zsh)Use "minikube --help" for more information about a given command.

minikube在线使用体验

https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

参考链接&#xff1a;

https://yq.aliyun.com/articles/221687

https://github.com/caicloud/kube-ladder/edit/master/tutorials/lab1-installation.md

https://blog.csdn.net/java_zyq/article/details/88971407

https://stackoverrun.com/cn/q/12359425


推荐阅读
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 深入理解Java多线程与并发机制
    本文探讨了Java多线程和并发机制的核心概念,包括多线程类的分类、执行器框架、并发容器及控制工具。通过详细解析这些组件,帮助开发者更好地理解和应用多线程技术。 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
author-avatar
Coco李可儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有