乐趣区

关于kubernetes:在k3s上部署第一个nginx服务

创立 Deployment

在 kubernetes 中,deployment 用来部署利用,常见的集中配置含意如下

nginx-deployment.yml

apiVersion: apps/v1    #与 k8s 集群版本无关,应用 kubectl api-versions 即可查看以后集群反对的版本
kind: Deployment    #该配置的类型,咱们应用的是 Deployment
metadata:            #译名为元数据,即 Deployment 的一些根本属性和信息
  name: nginx-deployment    #Deployment 的名称
  labels:        #标签,能够灵便定位一个或多个资源,其中 key 和 value 均可自定义,能够定义多组,目前不须要了解
    app: nginx    #为该 Deployment 设置 key 为 app,value 为 nginx 的标签
spec:            #这是对于该 Deployment 的形容,能够了解为你期待该 Deployment 在 k8s 中如何应用
  replicas: 3    #应用该 Deployment 创立一个应用程序实例
  selector:        #标签选择器,与下面的标签独特作用,目前不须要了解
    matchLabels: #抉择蕴含标签 app:nginx 的资源
      app: nginx
  template:        #这是抉择或创立的 Pod 的模板
    metadata:    #Pod 的元数据
      labels:    #Pod 的标签,下面的 selector 即抉择蕴含标签 app:nginx 的 Pod
        app: nginx
    spec:        #冀望 Pod 实现的性能(即在 pod 中部署)containers:    #生成 container,与 docker 中的 container 是同一种
      - name: nginx    #container 的名称
        image: nginx:alpine    #应用镜像 nginx 创立 container,ports:
          - containerPort: 80   #外部服务裸露的端口 

这外面定义 nginx 应用的镜像和创立多少个实例,以及 container 命名标记

当咱们依照须要配置好 deployment,应用 kubectl apply 去创立部署 (常见的几个 kubectl 命令可能须要记一下)

[root@master nginx]# kubectl apply -f nginx-deployment.yml 
deployment.apps/nginx-deployment created


创立 Service

当咱们创立部署结束,nginx 服务仅仅只是部署,咱们还须要让它暴露出本人的服务。
这就相当于给局域网里的电脑插上了网线,从此就能够对外公开本人的服务。

nginx-service.yml

apiVersion: v1
kind: Service  #该配置的类型,咱们应用的是 Service 服务类型
metadata:
  name: nginx-service  #该服务类型的名称
spec:
  selector:    #选中的 app 部署实例
    app: nginx #为该 Deployment 设置 key 为 app,value 为 nginx 的标签
  ports:  #裸露的端口
  - protocol: TCP  # 走得 tcp 协定
    port: 80 #默认端口
    targetPort: 80 #内建服务端口
    nodePort: 30080 #对外服务端口
  type: NodePort 

这外面呢,targetPort 就是对应着 deployment 的内网端口,nodePort 则是对外公开的端口。

[root@master nginx]# kubectl apply -f nginx-service.yml 
service/nginx-service created

关上浏览器,咱们能够看到 nginx 服务曾经对外开启


一个 nignx 服务 曾经在集群跑起来了。

退出移动版