zoukankan      html  css  js  c++  java
  • 二进制部署k8s集群(7):创建(Pod, Deployment、Service)验证kubernetes集群

    创建secret

    前提需要在私有Harbor上创建一个用户,此用户可以用来登录,并把harbor中的某些项目授予此用户的【项目管理员 】或【项目维护人员】或【开发人员】权限。验证从私有Harbor上拉取镜像创建pod用于验证kubernetes集群。

    【创建secret】

    如果Harbor里的镜像为私有镜像,那是不能直接pull镜像的,需要配置secret。如果是公有镜像,可以直接从Harbor里pull镜像。

    在k8s管理节点上创建一个secret,

    kubectl create secret docker-registry myharbor-yyee --docker-server=192.168.0.101:10080 --docker-username=yyee --docker-password=Harbor12345 --docker-email=87643666@qq.com

    kubectl create secret docker-registry <注册secret名> --docker-server=<harbor服务器地址> --docker-username=<harbor用户名> --docker-password=<登录密码> --docker-email=<注册邮箱>

    创建单个pod

    使用yaml文件创建单个pod 。

    【创建pod配置文件】

    在其中一个【k8s管理节点】上创建pod启动文件

    vi /opt/kubernetes/server/startup/demo1.mvcone-pod.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo1-mvcone
    spec:
      containers:
      - name: my-demo1-mvcone
        image: 192.168.0.101:10080/eshop/demo1.mvcone:v1.0.1
        ports:
        - containerPort: 50002
      imagePullSecrets:
      - name: myharbor-yyee

     --containerPort 容器端口

    imagePullSecrets 节点下的myharbor-yyee名称就是指定harbor的安全访问配置名称。

    如果harbor里的镜像是public类型,则不需要配置imagePullSecrets ,可以直接pull私有harbor中的镜像。

    【创建pod】

    kubectl create -f /opt/kubernetes/server/startup/demo1.mvcone-pod.yaml

    pod/demo1-mvcone created

       【查看创建的pod】

    kubectl get pods -o wide

       

    使用yaml文件创建Deployment

    使用yaml文件创建Deployment

    【创建deployment配置文件】

    在其中一个【k8s管理节点】上创建Deployment配置文件

    vi /opt/kubernetes/server/startup/demo1.mvcone-deploy.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo1-mvcone
      labels:
        app: demo1-mvcone
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: demo1-mvcone
      template:
        metadata:
          labels:
            app: demo1-mvcone
        spec:
          imagePullSecrets:
          - name: myharbor-yyee
          containers:
          - name: demo1-mvcone
            image: 192.168.0.101:10080/eshop/demo1.mvcone:v1.0.1
            imagePullPolicy: Always
            ports:
            - containerPort: 50003

    containerPort: 容器端口

    imagePullSecrets 节点下的myharbor-yyee名称就是指定harbor的安全访问配置名称。

    如果harbor里的镜像是public类型,则不需要配置imagePullSecrets ,可以直接pull私有harbor中的镜像。

    selector 通过pod的名称选择pod

    【创建Deployment】

    kubectl create -f /opt/kubernetes/server/startup/demo1.mvcone-deploy.yaml

    deployment.apps/demo1-mvcone created

    查看Deployment】

    kubectl get deployment -o wide

       

    【查看创建的pod】

    kubectl get pod -o wide

        

    使用yaml文件创建service

    只有 deploymente 才可以被创建成service 。

    service配置文件

    vi /opt/kubernetes/server/startup/demo1.mvcone-svc.yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: demo1-mvcone-service
      namespace: default
      labels:
        name: demo1-mvcone-service
    spec:
      type: NodePort
      selector:
        app: demo1-mvcone
      ports:
        - port: 20002
          targetPort: 50002
          nodePort: 20002
          protocol: TCP

    port: 服务对外端口,不能跟targetPort重复。

    targetPort:容器端口

    nodePort: 服务内部端口。

    selector 通过pod的名称选择pod

    创建服务

    kubectl create -f /opt/kubernetes/server/startup/demo1.mvcone-svc.yaml

    service/demo1-mvcone-service created

      

    查看服务

      

    使用yaml文件创建DaemonSet

    使用yaml文件创建DaemonSet

    【创建DaemonSet配置文件】

    在其中一个【k8s管理节点】上创建Daemonset配置文件

    vi /opt/kubernetes/server/startup/demo1.mvcone-daemonset.yaml

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: demo1-mvcone
      labels:
        app: demo1-mvcone
    spec:
      selector:
        matchLabels:
          app: demo1-mvcone
      template:
        metadata:
          labels:
            app: demo1-mvcone
        spec:
          imagePullSecrets:
          - name: myharbor-yyee
          containers:
          - name: demo1-mvcone
            image: 192.168.0.101:10080/eshop/demo1.mvcone:v1.0.1
            imagePullPolicy: Always
            ports:
            - containerPort: 50002

    imagePullSecrets 节点下的myharbor-yyee名称就是指定harbor的安全访问配置名称。

    如果harbor里的镜像是public类型,则不需要配置imagePullSecrets ,可以直接pull私有harbor中的镜像。

    【创建DaemonSet】

    kubectl create -f /opt/kubernetes/server/startup/demo1.mvcone-daemonset.yaml

    daemonset.apps/demo1-mvcone created

       

    【查看DaemonSet】

    kubectl get daemonset -o wide

       

     【查看创建的pod】

    kubectl get pod -o wide

         

    Pod,DaemonSet,Deployment对比

     【Pod,DaemonSet,Deployment对比:】

    Pod每次只能给一个工作节点创建一个Pod实例。

    DaemonSet一次性给每个工作节点创建一个Pod实例,不能扩容,3个工作节点总共创建3个Pod。

    Deployment可以创建多个Pod实,不受工作节点限制,将Pod均衡的分配到每个工作节点, Pod实例可以多于也可以小于工作节点的个数,方便扩缩容。

    kubectl  pod管理命令

    【用yaml文件创建Pod|Daemonset|Deployment】 kubectl create -f xxx.yaml

    【查看pod】:kubectl get pod demo1-mvcone

    【查看DaemonSet】:kubectl get daemonset demo1-mvcone

    【查看Deployment】:kubectl get deployment demo1-mvcone

    【删除Pod】:kubectl delete pod demo1-mvcone

    【删除DaemonSet】: kubectl delete daemonset demo1-mvcone

    【删除Deployment】: kubectl delete deployment demo1-mvcone

  • 相关阅读:
    Mysql(7) _常用函数
    Mysql(6)_ 帮助的使用
    Mysql(5)_ 基本数据类型-时间
    Mysql(4)_整型和浮点型
    1 HTTP请求头Header及其作用详解
    Java(35) _JDBC批量插入数据二
    Java(34)_ 用JDBC批量向数据库插入语句
    Java(33)_ JDBC指针移动
    Mysql(3)_ Mycat简介
    Mysql(2)_ binlog文件
  • 原文地址:https://www.cnblogs.com/yyee/p/13252374.html
Copyright © 2011-2022 走看看