使用Minikube是运行Kubernetes集群最简单、最快捷的途径,Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用。

⒈安装Minikube

  Minikube是一个需要下载并放到路径中的二进制文件。它适用于Windows、Linux和OSX系统。

  Github地址:https://github.com/kubernetes/minikube,官方安装教程地址:https://minikube.sigs.k8s.io/docs/start/linux/,上面有详细的安装过程,我们可以借鉴官方的安装方法进行安装。

  我的是Centos7系统,执行以下命令:Centos7是rpm,我就直接使用rpm了。(需要科学 上 网,我是直接给虚拟机中的Linux配置了代理)

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-1.3.1.rpm \
&& sudo rpm -ivh minikube-1.3.1.rpm

  如果你不清楚你的Linux使用的是何种包管理器,就直接执行以下命令即可。  

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

  

⒉配置管理程序设置并启动

  1.验证Linux系统是否已启用虚拟化支持。

egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no 

如果上面的命令输出“no”:

  • 如果您在虚拟机中运行的Linux做测试,则您的虚拟机管理程序不允许嵌套虚拟化。您将需要使用None(裸机)驱动程序
  • 如果您在物理计算机上运行,则需要在BIOS设置启用(CPU)硬件虚拟化。

  2.因为Minikube创建K8S虚机是通过Virtualbox来做的(当然还有其它driver,比如KVM,vmware等等)Minikube支持多种驱动程序 

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

  所以要先安装VirtualBox或者使用其它Minikube支持的管理程序。Linux上安装VirtualBox请参考这篇文章。https://www.cnblogs.com/fanqisoft/p/11315773.html

  ***因为我是在虚拟机中运行的Linux,然后在Linux之上运行Minikube,因此,我的Minikube管理程序(驱动)设置为None。

    1.以root身份运行以下命令使minikube以无驱动程序创建K8S虚机(需要科 学 上网)

sudo minikube start --docker-env HTTP_PROXY=${http_proxy} --docker-env HTTPS_PROXY=${https_proxy} --docker-env NO_PROXY=192.168.99.0/24 --vm-driver=none

    

  **使用minikube start 时将会拉取minikube的镜像,minikube的逻辑是创建一个vm,在这个vm里去运行k8s需要的各种docker image,而k8s的镜像不在 docker 官方仓库里,在谷歌自己的仓储里,这个仓库地址是被404的,所以运行start命令时需要跳过404,可以在start命令中设置代理,参考https://fatfatson.github.io/2018/07/23/mac%E4%B8%8A%E5%AE%89%E8%A3%85mimikube/,命令应该是这样的。

minikube start --docker-env HTTP_PROXY=${http_proxy} --docker-env HTTPS_PROXY=${https_proxy} --docker-env NO_PROXY=192.168.127.1:7777

也可以直接给虚拟机中的Linux挂代理,我是直接让Linux使用主机的VPN因此并没有使用上面的这个命令。

    2.设置none为Minikube默认值的管理程序(驱动),使用root用户运行以下命令

sudo minikube config set vm-driver none

⒊安装Kubernetes客户端(kubectl)

  要与Kubernetes进行交互,还需要kubectl CLI客户端。

  Kubectl是一个命令行界面,用于运行针对Kubernetes集群的命令。Kubernetes命令行工具kubectl允许您对Kubernetes集群运行命令。您可以使用kubectl部署应用程序,检查和管理群集资源以及查看日志。

  github地址:https://github.com/kubernetes/kubectl,官方安装教程:https://kubernetes.io/docs/tasks/tools/install-kubectl/

  官方有详细的安装说明,我这里就不赘述,使用以下命令进行安装。

  1.

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

  2.

yum install -y kubectl

使用Minikube运行一个本地单节点Kubernetes集群的更多相关文章

  1. 使用Minikube运行一个本地单节点Kubernetes集群(阿里云)

    使用Minikube运行一个本地单节点Kubernetes集群中使用谷歌官方镜像由于某些原因导致镜像拉取失败以及很多人并没有代理无法开展相关实验. 因此本文使用阿里云提供的修改版Minikube创建一 ...

  2. 在 Linux 部署多节点 Kubernetes 集群与 KubeSphere 容器平台

    KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级容器平台,所有供为用户提供简单易用的操作界面以及向导式操作方式.同时,KubeSphere Installer 提供了 ...

  3. 使用Rancher Server部署本地多节点K8S集群

    当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式.很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作.但当我已经了解了 ...

  4. K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股

    K8s 二进制部署单节点 master    --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...

  5. Kafka单节点及集群配置安装

    一.单节点 1.上传Kafka安装包到Linux系统[当前为Centos7]. 2.解压,配置conf/server.property. 2.1配置broker.id 2.2配置log.dirs 2. ...

  6. ActiveMQ的单节点和集群部署

    平安寿险消息队列用的是ActiveMQ. 单节点部署: 下载解压后,直接cd到bin目录,用activemq start命令就可启动activemq服务端了. ActiveMQ默认采用61616端口提 ...

  7. 配置kubectl在Mac(本地)远程连接Kubernetes集群

    集群部署在云服务器的ECS上,但是有时需要本地原创连接集群,这就需要通过ApiServer的外网地址去访问集群,但是-/.kube/config下的地址又都是内网,所以可以使用如下方式解决: Mac安 ...

  8. 基于minikube的kubernetes集群部署及Vitess最佳实践

    简介 minikube是一个可以很容易在本地运行Kubernetes集群的工具, minikube在电脑上的虚拟机内运行单节点Kubernetes集群,可以很方便的供Kubernetes日常开发使用: ...

  9. 阿里云ECS(Ubuntu)单节点Kubernetes部署

    参考资料: kubernetes官网英文版 kubernetes官网中文版 前言 这篇文章是比较久之前写的了,无聊翻了下博客发现好几篇博文排版莫名其妙的变了... 于是修改并完善了下.当初刚玩k8s的 ...

随机推荐

  1. js监听页面标签切换

    var OriginTitile = document.title, titleTime; document.addEventListener('visibilitychange', function ...

  2. 爬虫之requests库的使用

    get基本请求 响应对象的属性: # 获取响应对象中的内容是str格式 text # 获取响应对象中的内容是二进制格式的 content # 获取响应状态码 status_code # 获取响应头信息 ...

  3. Python学习日记(一)——初识Python

    Python的优势 互联网公司广泛使用python来做的事一般有:自动化运维.自动化测试.大数据分析.爬虫.Web等. Python与其他语言 C和Python.Java.C#: C  语言:代码编译 ...

  4. (转)ON DUPLICATE KEY UPDATE --mysql的一个有趣语法

    转自:http://my.oschina.net/iceman/blog/53735?fromerr=3kAEPcQr 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE, ...

  5. Ubuntu安装Redis及使用

    NoSQL简介NoSQL,全名为Not Only SQL,指的是非关系型的数据库随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来 优点/缺点优点:高可扩展性分布式计算低成本架构的 ...

  6. SRCNN代码分析

    代码是作者页面上下载的matlab版.香港中文大学汤晓鸥教授.Learning a Deep Convolutional Network for Image Super-Resolution. htt ...

  7. easyUI之Layout(布局)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  8. Sqlite轻量级数据库

     SQLite,是一款轻量型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式开发中. SQLite的数据类型:Typelessness(无类型), 可以保 ...

  9. Ubuntu16.04格式化U盘

    root@ubuntu:~# fdisk -l root@ubuntu:~# fdisk /dev/sdb 格式化U盘: root@ubuntu:~# fdisk -l sudo mkfs.ntfs ...

  10. switch语句 initialization of 'XXX' is skipped by 'case' label 原因及解决办法--块语句的作用

    出错代码段: switch (t) { case 0:  int a = 0;  break; default:  break; }编译时提示:“error C2361: initialization ...