当前位置: 首页>前端>正文

paddlespeech容器部署 容器 pod node

目录

1、配置文件yaml语法:

(1)Namespace的yaml语法:

(2)Deployment的yaml语法:

(3)Service的yaml语法:

2、创建namespace:

(1)编写namesapce的yaml:

(2)构建namesapce:

(3)查看namesapce:

3、构建部署nginx服务:

(1)编写部署nginx服务的yaml:

(2)创建文件夹:

(3)创建nginx的conf:

(4)上传nginx部署项目:

(5)通过文件构建:

(6)查看pod列表:

(7)查看pod详情:

(8)查看service列表:

(9)查看service详情:

4、测试访问nginx:

(1)宿主机访问:

(2)远程访问:


1、配置文件yaml语法:

(1)Namespace的yaml语法:

# 版本通过:kubectl api-versions查看

apiVersion: v1

# 类型为namespace

kind: Namespace

metadata:

# 决定了namespace显示名称

  name: test-one

  labels:

    name: test-one

(2)Deployment的yaml语法:

# 版本通过:kubectl api-versions查看

apiVersion: extensions/v1beta1

# 类型为deployment

kind: Deployment

metadata:

  labels:

    app: myName

  # 决定了Pod的显示名称

  name: myName

spec:

  # 副本个数。若为3,k8s会保证pod个数为3个,少了就增加,多了就删除

  replicas: 1

  template:

    metadata:

      labels:

        # 标识Pod,在Service中的selector指定匹配label为app:myName

        app: myName

      name: myName

    spec:

      # Pod中包含的容器

     s:

        # 项目容器

      - name: myName

        imagePullPolicy: IfNotPresent

        image: $image

        env:

        - name: PRODUCTION_NGINX

          value: "1"

        - name: PRODUCTION_SETTINGS

          value: "1"

        ports:

          # 容器暴露的端口

        -Port: 8000

          name: http-8000

        volumeMounts:

        - name: nginx-config

          mountPath: /mnt/nginx

        - name: static

          mountPath: /mnt/static

        # Nginx容器

      - name: nginx

        image: nginx:1.16

        ports:

        -Port: 80

          name: http

        volumeMounts:

        - name: nginx-config

          mountPath: /etc/nginx/conf.d

        - name: static

          mountPath: /usr/share/nginx/html

      volumes:

      - name: static

        emptyDir: {}

      - name: nginx-config

        emptyDir: {}

(3)Service的yaml语法:

# 版本通过:kubectl api-versions查看

apiVersion: v1

# 类型为Service

kind: Service

# 元数据

metadata:

  # Service的名称

  name: myName

  # 标签key-value键值对

  labels:

    app: myName

# 声明

spec:

  # 端口

  ports:

    # Service在集群内部暴露的端口

  - port: 80

    # 内部端口映射到Pod暴露出的端口

    targetPort: 80

    # 端口名称(标识类型)

    name: http

    # 对外暴露的端口号。不指定,则随机生成

    nodePort: 30000

  # 选择器

  selector:

    # 指定label中app=myName的Pod都归属于当前Service

    app: myName

  # Service类型,NodePort类型可以对外暴露。

  # 不指定的话,则默认为ClusterIP,只能集群内部访问

  type: NodePort

2、创建namespace:

(1)编写namesapce的yaml:

为了将namesapce构建过程进行持久化,方便别人查看,因此将构建namesapce的过程在yaml中编写好。然后将yaml文件上传到服务器中自定义文件夹内。示例如下:

apiVersion: v1

kind: Namespace

metadata:

  name: namespace-lsy-test--one

  labels:

    name: namespace-lsy-test--one

(2)构建namesapce:

执行命令:kubectl create -f create_nginx_namespace.yaml

(3)查看namesapce:

执行命令:kubectl get namespaces

paddlespeech容器部署 容器 pod node,paddlespeech容器部署 容器 pod node_kubernetes,第1张

3、构建部署nginx服务:

(1)编写部署nginx服务的yaml:

Deployment经常会用来创建ReplicaSet和Pod,还支持常见的更新、扩容和缩容运维等操作。将ReplicaSet和Pod配置信息在yaml中编写好。然后再yaml后面配置上服务service的配置信息,最后将yaml文件上传到服务器中自定义文件夹内。示例如下:

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

  name: nginx-deployment

  namespace: default

  labels:

    name: nginx-deployment

spec:

  replicas: 2

  template:

    metadata:

      labels:

        app: nginx-deployment

    spec:

     s:

      - image: nginx

        name: nginx-test

        ports:

        -Port: 80

          name: port80  

        volumeMounts:

        - mountPath: /etc/nginx/nginx.conf

          name: config

        - mountPath: /var/log/nginx/

          name: log

        - mountPath: /usr/share/nginx/lsy/area

          name: lsy

      volumes:

      - name: config

        hostPath:

          path: /wocloud/soft/nginx/nginx.conf

      - name: log

        hostPath:

          path: /wocloud/soft/nginx/log/

      - name: lsy

        hostPath:

          path: /wocloud/soft/nginx/lsy/area

          

---

apiVersion: v1

kind: Service

metadata:

  name: nginx

  namespace: default

spec:

  selector:

    app: nginx-deployment

  type: NodePort

  ports:

    - protocol: TCP

      port: 8080

      targetPort: 80

      nodePort: 30048

        说明:个人理解应该是一个deployment部署一个服务,对应配置一个service,如果一个大应用中是多个服务,那么就要在一个yaml中配置多个deployment和service。在service中选择deployment是通过service中:spec.selector.app,选择对应的deployment中:spec.template.metadata.labels.app。总之一个应用的服务除了namespace、dokcer-file以外的其它内容配置应该都在一个yaml,只需要通过k8s命令操作这个yaml即可完成对整个应用的维护。

        注意:如果在一个yaml中定义多个deployment和service,那么对应的名称、端口号等参数需要进行修改,不要出现重复或者冲突。

(2)创建文件夹:

针对deployment中定义的volumes对应的path,构建对应的文件夹。

执行命令:mkdir -p /wocloud/soft/nginx/lsy/area/

执行命令:mkdir -p /wocloud/soft/nginx/log/

(3)创建nginx的conf:

创建nginx的conf文件,就是正常的配置nginx,并将文件放在yaml中配置的对应volumes的路径下。

(4)上传nginx部署项目:

将nginx中需要部署的项目上传到yaml中对应的volumes路径下。

(5)通过文件构建:

执行命令:kubectl create -f nginx_deployment.yaml

(6)查看pod列表:

执行命令:kubectl get pod -n namespace-lsy-test--one

说明:-n,是指定某个namespace。

(7)查看pod详情:

执行命令:kubectl describe pod/my-nginx-379829228-cwlbb

说明:最后一个参数是pod的名称。

(8)查看service列表:

执行命令:kubectl get service -n namespace-lsy-test--one

说明:-n,是指定某个namespace。

(9)查看service详情:

执行命令:kubectl describe service/nginx -n namespace-lsy-test--one

说明:-n,是指定某个namespace。

4、测试访问nginx:

(1)宿主机访问:

在宿主机中通过nodeIp:nodePort进行访问,执行命令:

 curl 192.168.137.180:30018

paddlespeech容器部署 容器 pod node,paddlespeech容器部署 容器 pod node_Deployment_02,第2张

(2)远程访问:

在同网段的其它服务器中访问k8s中部署的nginx服务,正常的话是在浏览器中可访问到nginx页面的。

paddlespeech容器部署 容器 pod node,paddlespeech容器部署 容器 pod node_Pod_03,第3张


https://www.xamrdz.com/web/2ms1931386.html

相关文章: