从命令行部署Kubernetes应用程序

有很多方法可以让Kubernete变得更加简单。多亏了MicroK8s和Portainer,我们不必一直应对挑战。但是,即使你可以开始使用Portainer进行Kubernetes的点击操作,但在某些情况下,你可能希望能够从命令行工作——比如你被要求将应用程序或服务部署到Kubernetes集群,但找不到Portiner GUI。

如果出现这种情况,你需要知道如何控制命令行界面并完成任务。我们将运行一个简单的NGINX部署,并从命令行执行所有操作。

要求

你需要一个正在运行的Kubernetes集群,在MicroK8s的帮助下,它非常容易部署。现在,我们演示Kubernetes的MicroK8s版本,所以命令会有点不同,因为它们将使用MicroK8s和kubectl。

这就是所需要的。让我们开始部署。

如何创建第一个部署

我们要做的第一件事是登录Kubernetes控制器节点。登录后,使用以下命令验证你的节点是否仍然连接:

microk8s kubectl get nodes

该命令的输出应该包含如下内容:

k8s3 Ready <none> 23d v1.24.8-2+1dda18a15eea38

k8s2 Ready <none> 23d v1.24.8-2+1dda18a15eea38

k8s1 Ready <none> 23d v1.24.8-2+1dda18a15eea38

现在,你确定节点都处于就绪状态,请使用以下命令创建一个新目录:

mkdir ~/deployment

使用以下命令切换到新创建的目录:

cd ~/deployment

使用以下内容创建新的部署YAML文件:

nano nginx-deployment.yml

在该文件中,粘贴以下内容:

apiVersion: apps/v1kind: Deploymentmetadata:name: nginx-deploymentlabels:app: nginxspec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:– name: nginximage: nginx:1.7.9ports:– containerPort: 80

上述文件的大部分内容应该是不言自明的,但有一些部分需要密切关注,例如:

apiVersion——详细说明将使用的API版本。

kind——详细说明正在创建的对象的类型。

元数据——帮助识别对象的数据。

spec——希望的对象状态。

使用[Ctrl]+[X]键盘快捷键保存并关闭文件。

使用以下命令应用新创建的YAML文件:

1

microk8s kubectl apply -f nginx-deployment.yml

输出应显示如下内容:

deployment.apps/nginx-deployment created

使用以下命令验证部署:

1

microk8s kubectl get deployments

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

nginx-deployment 2/2 2 2 5m32s

很棒,继续前进。

现在,你需要了解NGINX pod可以访问的IP地址。需要记住的一点是,第一次部署将仅对本地网络可用。我们将在下一次更进一步,使其在集群之外可用。

要查找NGINX pod的IP地址,请发出以下命令:

microk8s kubectl describe pods nginx

在输出中,应该看到如下内容:

IPs:

IP: 10.1.219.7

我们的NGINX pod在IP地址10.1.219.7上运行。我们可以通过从控制器节点运行以下命令来测试:

curl 10.1.219.7

输出应该如下所示:

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

body {

width: 35em;

margin: 0 auto;

font-family: Tahoma, Verdana, Arial, sans-serif;

}

</style>

</head>

<body>

<h1>Welcome to nginx!</h1>

<p>If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.</p>

<p>For online documentation and support please refer to

<a href="http://nginx.org/">nginx.org</a>.<br/>

Commercial support is available at"

<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

</body>

</html>

如果控制器节点具有GUI,则可以打开web浏览器并将其指向http://10.1.219.7并查看打印的NGINX欢迎页面。

现在,如果你将Portiner安装到Microk8s集群,那么可以登录Portiner,转到Applications,看到我们的nginx部署可用(图1)。

图1:nginx部署正在运行。

单击列表,你将看到pod已复制到两个节点(图2)。

图2:NGINX部署不仅在单个节点上运行,而且在两个节点上运行。

当然,这不是很有用,因为无法从集群外部访问应用程序。没关系,下一次我们将回到Portiner,了解部署同一个NGINX应用程序有多容易,让它只在集群外部可见。即使使用Portiner这样的工具部署这样的应用程序要容易得多,但知道如何从命令行进行部署总是很好的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值