kubernetes 入门 (二)----部署一个Nginx服务

103 阅读2分钟

我是k8s庄园的庄园主,近期我要在我的庄园里开个party与好友来一起happy。为了能够服务好我的好友们,我首先要找到足够的服务员。于是我想到了去市场看看能不能买一些黑奴来充当服务员。

部署一个Nginx服务

目标:

  1. 完成Nginx服务的部署
  2. 观察我们创建的nginx服务

想要部署一个服务,黑奴Pod是必不可少的。Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。集群中实际'工作'的只有Pod,其他组件存在都是为了让Pod更好工作。

构建

要如何创建一个Pod呢?要知道k8s中所有资源,都可以通过一个yaml文件来描述。这里准备了一份创建Pod运行nginx的yaml。

# simple-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
  • apiVersion: 声明api版本
  • Kind:资源类型,这里直接使用Pod
  • metadata: 资源的元数据,启动声明Pod的名称为nginx。
  • spec:资源规格描述
  • containers: 容器相关信息,大部分情况下,我们仅使用一个容器。实际上Pod可以启动多个容器,比如在sidecare需求下。
  • image:指定容器使用的镜像。
  • ports:要开启的端口 containerPort 可以类别docker暴露端口

有了这样一个描述文件,我们只需要执行下面指令即可。

kubectl apply -f simple-pod.yaml

我们会收到k8s的响应信息:

pod/nginx created

查看Pod

除了这个信息我们还能通过那些方式了解到我们创建的Pod呢?

  • kubectl get pods 命令
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 3m58s

# 获取更详细的信息
$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 35m 10.244.0.94 debian <none> <none>

  • kubctl describe pod nginx 查看详细描述也可以 可以看到Pod已经在运行了,但是我们要怎么指定知道运行是一个nginx呢? 直接使用网页或者curl wget访问你Pod的IP即可。
$ curl 10.244.0.94
<!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>

至此我们的nginx Pod就部署并验证完成了。

Pod更多内容请参考官方文档