首页 > 编程语言 >使用MicroK8s部署第一个应用程序

使用MicroK8s部署第一个应用程序

时间:2022-12-31 11:02:25浏览次数:47  
标签:Kubernetes 部署 端口 MicroK8s 应用程序 nginx 集群


Kubernetes具有挑战性。对此,没有任何争议。不仅在将容器部署到Kubernetes集群中有很多移动部件,而且在这一过程中可能会出现很多问题。更为复杂的是,部署Kubernetes集群可能是一件棘手的事情。

这就是Canonical的MicroK8等工具被开发出来的原因。有了这样的软件,部署Kubernetes集群的过程就不那么具有挑战性,你可以更加专注于加快向集群部署应用程序和服务的速度。

将应用程序和服务部署到Kubernetes集群的诸多因素之一就是访问它们。与Docker不同,当你将应用程序或服务部署到Kubernetes集群时,它不会自动用于你的网络。如果你所在的计算机是集群的一部分,那么当然可以访问该应用程序或服务,因为该计算机可以访问集群使用的子网。如果没有一些额外的技巧,该应用程序和服务在集群之外根本不可用。这意味着你必须手动使其可用。

再一次强调,很多活动部件。

笔者已经完成了在Rocky Linux上安装Microk8s,然后将节点连接到控制器的步骤。通过添加节点,可以创建应用程序和服务可以部署到的集群。

现在要做的是展示如何将第一个应用程序部署到集群,然后使该应用程序可以在集群之外访问。需要注意的一点是,将应用程序/服务部署到MicroK8s集群与任何其他Kubernetes发行版类似。最大的不同是,部署需要MicroK8s命令,而其他Kubernetes发行版则没有这个要求。

需要什么

为此,你只需要一个运行中的MicroK8s集群,该集群至少包含一个控制器和两个节点。这些可以部署到数据中心、测试网络或第三方云主机。只要节点连接到控制器,就可以开始了。

如果不确定节点是否已连接,请登录控制器并发出命令:

1

microk8s kubectl get nodes

你应该看到列出的控制器和所有连接的节点。如果没有,请确保再次执行连接节点的步骤。

使用MicroK8s部署第一个应用程序

登录MicroK8s控制器。对于本演示,我们将部署一个NGINX web服务器应用程序。我们将此部署命名为nginx-webserver,并使用正式的nginx容器镜像进行部署。此命令为:

microk8s kubectl create deployment nginx-webserver --image=nginx

该命令的输出应如下所示:

deployment.apps/nginx-webserver created

使用以下命令验证部署是否成功:

microk8s kubectl get pods

你应该在输出中看到类似的内容:

nginx-webserver-67f557b648-4mfc6         1/1     Running

第一个pod已部署到集群。什么是pod?Kubernetes pod是一个或多个容器的集合,是应用程序的最小单元。pod通常由多个集成容器组成,但也可以由单个容器组成。在上面的例子中,我们部署了一个带有单个容器(NGINX)的pod。

此时,NGINX应用程序正在运行,但无法访问。为了使其可访问,我们还必须部署一个服务。我们将在这里使用端口80上的类型“NodePort”公开nginx Web服务器部署。什么是NodePort?简单地说,NodePort是连接到集群的每个节点上的一个开放端口。Kubernetes将NodePort上的传入流量路由到部署的服务或应用程序。

要部署服务,命令如下所示:

microk8s kubectl expose deployment nginx-webserver --type="NodePort" --port80

命令的输出应如下所示:

service/webserver exposed

如果你试图访问端口80上正在运行的容器,例如http://192.168.1.45,你会发现它无法访问。有什么好处?好吧,Kubernetes将内部端口80映射到一个随机的内部端口。在我们访问正在运行的web服务器之前,我们必须找出它映射到了哪个端口。为此,发出命令:

microk8s kubectl get svc nginx-webserver

输出应该如下所示:

nginx-webserver   NodePort   10.152.183.105   <none>        80:31508/TCP   3m11s

如你所见,Kubernetes已将内部端口80(NGINX使用的端口)映射到外部端口31508(Kubernete集群使用的端口)。因此,如果你将web浏览器指向192.168.1.45:1508,你应该会在浏览器中看到NGINX欢迎屏幕。

当然,你可以使用任何一个节点的IP地址。但是,如果使用控制器的IP地址,则不会显示NGINX站点。为什么?因为控制器将容器部署到节点,而不是自身。

这就是使用MicroK8s将第一个应用程序部署到Kubernetes集群的全部内容。


标签:Kubernetes,部署,端口,MicroK8s,应用程序,nginx,集群
From: https://blog.51cto.com/u_13964361/5982036

相关文章

  • Docker部署redis
    1、拉取镜像dockerpullredis:6.2.82、创建宿主机文件挂载,创建data文件夹和redis.conf文件  3、redis.conf,可根据自己需要进行编辑#bind127.0.0.1protecte......
  • docker部署nacos集群
    1、拉取镜像dockerpullnacos/nacos-server2、单机部署​单机版部署很简单,直接一条命令即可完成,通过 MODE 来设置使用单机模式;注意如果是多网卡的话需要配置......
  • Docker部署nginx并挂载配置
    1、下载镜像并启动一个容器dockerpullnginx创建容器并运行dockerrun-d--namemynginx-p80:80 2、将nginx配置文件挂载到宿主机在宿主机创建目录: ......
  • python 部署django项目到公网 无法连接
    https://blog.csdn.net/xiongzaiabc/article/details/108448390 服务器后台运行:https://www.jianshu.com/p/4041c4e6e1b0......
  • 银行智算中心部署浪潮AIStation,模型训练效率提升7倍
    ​随着金融数字化转型加速推进,银行需要提供更高质量、更快速的金融服务,对银行智算中心的能力提出了更高要求和挑战。多样化智能计算场景需要多元化的算力供给,如巨量化模型、......
  • OpenGauss3.1.0 单机版安装部署过程
    背景由易到难先进行单节点的设置先说坑openEuler2203默认安装了python3.9但是openGauss里面指代了3.6和3.7/openGauss/install/om注意在clusterconfig里面的这......
  • Linux一键部署ELK+Filebeat+Nginx+Redis日志平台自动化脚本
    此脚本是Linux一键部署ELK+Filebeat+Nginx+Redis日志平台自动化脚本,有需要朋友可以参考,脚本内容如下:环境准备操作系统:CentOSLinuxrelease7.8.2003软件版本Elasticsearch:e......
  • Linux一键部署ELK日志平台自动化脚本
    此脚本是Linux一键部署ELK日志平台自动化脚本,有需要朋友可以参考,脚本内容如下:环境准备操作系统:CentOSLinuxrelease7.8.2003软件版本elasticsearch:elasticsearch-7.5.1-li......
  • Kubernetes自动化一键部署脚本
    Kubernetes简介Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规......
  • 使用kubeadm在CentOS 7上部署kubernetes1.18
    一、Kubernetes简介Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的......