Kubernetes学习笔记之安装minikube并运行个简单应用程序
前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://minikube.sigs.k8s.io/docs/start/ ,使用此文档教程之前请确保已经安装了容器引擎,如Docker,并且要确保CPU核心数是双核及以上,不然会报错“the number of available CPUs 1 is less than the required 2”。
笔记内容:
- 下载软件安装
- 运行minikube集群
- 与集群交互
- 部署应用
- 管理集群
1、下载软件安装
下载软件安装使用的是debian分支打包好的包,执行命令:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_1.9.1-0_amd64.deb #-O参数是使用Http协议,-L参数是跟随重定向。此命令使用curl工具下载minikube_1.9.1-0_amd64.deb文件,下载完成后就可以执行安装
sudo dpkg -i minikube_1.9.1-0_amd64.deb #执行安装.deb包,-i参数为install
2、运行
安装成功后,就可以进行运行操作了,执行命令:
minikube start #运行minikube,第一次运行过程中会下载镜像
3、与集群交互
当运行minikube运行成功,就可以查看minikube运行的pods了,执行命令:
sudo snap install kubectl --classic #安装kubectl
kubectl get pods -A #查看所有的pods
也可以打开dashboard查看,开启dashboard会打开浏览器页面,执行命令:
minikube dashboard #启动dashboard
4、部署简单应用程序
部署应用程序之前需要有镜像,minikube里面是包含了一个docker容器引擎的,里面有一个名字为k8s.gcr.io/echoserver的用作测试的镜像,执行命令:
minikube ssh #进入minikube终端
docker images #查看内置的docker镜像
exit #退出minikube终端
有镜像,就可以使用命令是kubectl deployment xxx来部署应用程序了,执行命令:
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4 #--image是镜像,hello-minikube是部署的应用程序名称
kubectl get deployment #查看部署的应用程序信息,包括是否为ready状态
ready状态下,我们就可以继续暴露应用程序的端口,类型--type参数有三种:ClusterIP, NodePort, or LoadBalancer,默认为ClusterIP,执行命令:
kubectl expose deployment hello-minikube --type=NodePort --port=8080 #设置部署的应用程序hello-minikube暴露8080端口,类型为NodePort(在每个Node上分配一个端口作为外部访问入口)
kubectl get services hello-minikube #查看创建的hello-minikube服务
kubectl port-forward service/hello-minikube 7080:8080 #设置端口转发
这时候,端口转发已经设置好了,打开浏览器输入地址locahost:7080即可访问到部署的应用程序,如下图所示:
5、管理集群
minikube pause #暂停集群而不影响部署的应用程序
minikube stop #停止集群,相对应的是minikube start启动集群
minikube config set memory 2048 #设置内存大小为2048MB,设置后创建新的集群会使用改配置
minikube addons list #查看扩展插件信息
minikube delete #删除集群
Kubernetes学习笔记之安装minikube并运行个简单应用程序的更多相关文章
- 【Kubernetes学习笔记】-使用Minikube快速部署K8S单机学习环境
介绍 https://minikube.sigs.k8s.io/docs/ Minikube 用于快速在本地搭建 Kubernetes 单节点集群环境,它对硬件资源没有太高的要求,方便开发人员学习试用 ...
- Kubernetes 学习笔记(一):基础概念
个人笔记,仅本人查阅使用,不保证正确. 零.微服务 微服务架构专注于应用解耦合,通过将应用彻底地组件化和服务化,每个微服务只包含一个非常小的功能,比如权限管理.日志收集等等.由这一组微服务组合起来,提 ...
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- OracleDesigner学习笔记1――安装篇
OracleDesigner学习笔记1――安装篇 QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一. 前言 Oracle是当 ...
- Kubernetes学习笔记(八):Deployment--声明式的升级应用
概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod ...
- ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心
作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...
- ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁
作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...
- Android(java)学习笔记219:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- Android(java)学习笔记162:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
随机推荐
- 深入理解Java虚拟机(九)——后端编译与优化
即时编译器 Java程序最初都是通过解释器进行执行,当发现某个方法或者代码块被运行得非常频繁,这些代码就被认为是热点代码,为了提高这些代码得运行效率,虚拟机会把热点代码编译成本地机器码,并进行优化,运 ...
- 自定义radio、checkbox的样式
input标签中的radio和checkbox是很表单中常用的类型,大多时候,默认样式并不能满足我们的需求,所以有了此篇. 自定义样式,由此开启: html: <div class=" ...
- 【面试专栏】Java并发编程:volatile关键字
1. 内存模型 若一个变量在多线程环境下同时操作,则可能出现结果不一致的情况.这就是常说的缓存不一致性问题. 解决缓存不一致问题,通常有两个解决方案: 通过在总线加LOCK#锁的方式 因为CPU和其 ...
- gnuplot中的一些技巧
http://blog.csdn.net/bill_chuang/article/details/18215051 一.基础篇: 1.plot命令 基本命令:plot {<ranges>} ...
- c++ 解析yaml文件
一直用c++操作ini做配置文件,想换成yaml,在全球最大的同性交友网站github上搜索,看有没有开源的库,功夫不负有心人,找到了yaml-cpp,用他解析了一个yaml的例子非常好使,分享一下如 ...
- ant design 中实现表格头部可删除和添加
我是用antd pro做一个项目.有一个小需求是表格头部栏可操作.具体是表头的每一项都带一个"x"按钮,当不想展示这一栏的时候,直接点"x",这一栏就不展示了. ...
- 推荐一款最强Python自动化神器!不用写一行代码!
搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium.结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人 ...
- c++日常小问题
语法解析问题. 当给一个变量构造函数传递一个临时变量,而不是命名的变量,c++编译器会将其解析为函数声明,而不是类型对象的定义. class hello { void operator()() { s ...
- 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问
原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...
- Tomcat如何使用线程池处理远程并发请求
Tomcat如何使用线程池处理远程并发请求 通过了解学习tomcat如何处理并发请求,了解到线程池,锁,队列,unsafe类,下面的主要代码来自 java-jre: sun.misc.Unsafe j ...