• kubernetes 创建nginx 容器


    参考:http://blog.csdn.net/qq1010885678/article/details/48832067

    一个简单的nginx服务器

    先决条件:你需要拥有的是一个部署完毕并可以正常运行的k8s集群。

    1.拉 nginx 镜像,上传到私服

      

    方案一:使用界面 k8s dashboard 创建

           1.创建rc :

                    

           创建完后:

                

                两个同时创建.

               因为创建rc的时候 选择了内部服务。

       

            如图:

           我们尝试在 minion节点上 访问

          nginx

          方式一:    Cluster IP+port  注意配置的是 targetPort 即容器内的端口是80

             

           可以访问!

        方式二:通过 pod的 Cluster IP+containerPort

                       

                  

         

          实践证明 :都可以!

        

      注意:2个都叫  Cluster IP ,但是实际上 后面的是 容器的ip,签名的应该 是 另外的一个ip

     

      2个ip的区别 未来需要继续弄清楚。

    另外:这三个IP都不是 minion的节点的 IP,192.168.179.135

      

       节点的IP 80 或81端口都不行的。

    据此:尝试创建 一个外部服务

     

    测试:

     

     以上三个IP都可以。

     

       重点:  minion节点的IP+ 32108 端口居然可以访问

     

    方案二:通过yaml文件创建  rc和svc    即rc和service   本方法没验证,但是yaml是从 界面里拷出来的。理论上可以的

         1.创建rc

                   

    Replication Controller        {5}
            
    kind    :    ReplicationController
            
    apiVersion    :    v1
            
        metadata        {8}
            
    name    :    nginx-hui
            
    namespace    :    default
            
    selfLink    :    /api/v1/namespaces/default/replicationcontrollers/nginx-hui
            
    uid    :    80f386f8-c206-11e7-859d-000c29e983de
            
    resourceVersion    :    55282
            
    generation    :    1
            
    creationTimestamp    :    2017-11-05T08:51:24Z
            
        labels        {1}
            
    app    :    nginx-hui
            
        spec        {3}
            
    replicas    :    2
            
        selector        {1}
            
    app    :    nginx-hui
            
        template        {2}
            
        metadata        {3}
            
    name    :    nginx-hui
            
    creationTimestamp    :    null
            
        labels        {1}
            
    app    :    nginx-hui
            
        spec        {5}
            
        containers        [1]
            
        0        {6}
            
    name    :    nginx-hui
            
    image    :    192.168.179.133:80/nginx
            
        resources        {0}
        (empty object)
            
    terminationMessagePath    :    /dev/termination-log
            
    imagePullPolicy    :    Always
            
        securityContext        {1}
            
    privileged    :    false
            
    restartPolicy    :    Always
            
    terminationGracePeriodSeconds    :    30
            
    dnsPolicy    :    ClusterFirst
            
        securityContext        {0}
        (empty object)
            
        status        {5}
            
    replicas    :    2
            
    fullyLabeledReplicas    :    2
            
    readyReplicas    :    2
            
    availableReplicas    :    2
            
    observedGeneration    :    1
    View Code

         2.创建svc

    Service        {5}
            
    kind    :    Service
            
    apiVersion    :    v1
            
        metadata        {7}
            
    name    :    nginx-hui
            
    namespace    :    default
            
    selfLink    :    /api/v1/namespaces/default/services/nginx-hui
            
    uid    :    80fe1ae1-c206-11e7-859d-000c29e983de
            
    resourceVersion    :    55241
            
    creationTimestamp    :    2017-11-05T08:51:24Z
            
        labels        {1}
            
    app    :    nginx-hui
            
        spec        {5}
            
        ports        [1]
            
        0        {4}
            
    name    :    tcp-81-80-8yb4e
            
    protocol    :    TCP
            
    port    :    81
            
    targetPort    :    80
            
        selector        {1}
            
    app    :    nginx-hui
            
    clusterIP    :    10.254.239.9
            
    type    :    ClusterIP
            
    sessionAffinity    :    None
            
        status        {1}
            
        loadBalancer        {0}
        (empty object)
    View Code

         实际是在 服务器上  master上 创建2个yaml文件

        rc.yaml  和svc.yaml

       然后用 

    kubectl create -f xx.yaml
    分别创建 rc和service

    方案三:下面是采用命令方式创建:(未成功)

     2. 在Master节点上使用kubectl命令来启动一个运行着nginx服务器的容器:

          kubectl run my-nginx --image=192.168.179.133:80/nginx --replicas=2 --port=80

        

      注:

    以上命令会让节点上的Docker从nginx这个image上启动一个容器监听80端口,此为一个pod。
    而replicas=2则表示会起两个一模一样的pod。
     
    k8s会确保你的应用是一直运行的,当容器运行失败时,k8s会自动重启容器,当整个节点失败时,会在另外一个健康的节点启动这个容器。
     
    界面查看 是2个pods
     

      3.通过端口将应用连接到Internet上

          以下命令将上一步骤中的nginx容器连接到公网中:

        

    kubectl expose rc my-nginx --port=80 --type=LoadBalancer

     注:rc即Replication Controller,上一步骤中的命令其实会自动创建一个名为my-nginx的rc来确保pod的数量维持在2个。

     实际测试中  没有这个rc  叫my-nginx

    使用以下命令来查看rc:
     
    $ kubectl get rc
     

     也可以界面:

  • 相关阅读:
    ZOJ1542 POJ1861
    Codeforces Round #194 (Div. 2) 部分题解
    SRM585 div2
    hdu 4627 The Unsolvable Problem
    hdu 4622 Reincarnation
    hdu 4617 Weapon
    hdu 4609 3-idiots
    hdu 4616 Game
    hdu 4611 Balls Rearrangement
    hdu 4618 Palindrome Sub-Array
  • 原文地址:https://www.cnblogs.com/hutuchong/p/7787888.html
Copyright © 2020-2023  润新知