『中级篇』k8s的NodePort类型Service以及Labe

作者: IT人故事会 | 来源:发表于2018-09-18 03:17 被阅读45次

    原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
    原文链接地址:『中级篇』k8s的NodePort类型Service以及Label的简单实用(68)

    上次主要说了service的一种类型,clusterIp,这次说下NodePort。源码:https://github.com/limingios/docker/tree/master/No.10

    通过pod创建service

    • 进入labs目录下的service
     cd deployk8s-master
     cd labs
     cd services
    
    • 查看nginx-pod
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx-pod
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-container
        image: nginx
        ports:
        - name: nginx-port
          containerPort: 8
    
    kubectl create -f pod_nginx.yml 
    kubectl get pods
    
    • 创建service类型是nodePort

    默认的type clusterIP的形式

    kubectl expose pods nginx-pod -h
    expose pods nginx-pod --type=NodePort
    kubectl describe node
    
    image.png

    明白了啥了没?其实nodePort就是直接暴露出来一个端口,直接就可以访问了,爽是爽但是不安全。

    通过pod 根据yml文件的形式创建service

    • 删除service

    pod还在,service已经成功删除了,app必须对应。

    kubectl delete service nginx-pod
    kubectl get pods
    kubectl get svc
    get pods --show-labels
    more service_nginx.yml 
    
    image.png
    • 创建service
    kubectl create -f service_nginx.yml
    vim service_nginx.yml 
    
    
    • label的理解

    Label机制是K8S中一个重要设计,通过Label进行对象弱关联,灵活地分类和选择不同服务或业务,让用户根据自己特定的组织结构以松耦合方式进行服务部署。
    Label是一对KV,对用户而言非常有意义的,但对K8S本身而言没有直接意义的。Label可以在创建对象时指定,也可以在后期修改,每个对象可以拥有多个标签,但key值必须是唯一的。
    Label可随意定义,但建议可读性,比如设置Pod的应用名称和版本号等。另外Lable是不具有唯一性的,为了更准确标识资源对象,应为资源对象设置多维度的label。

    nodePort是所有的pod都可以使用,如果使用nodePort的话,占用了很多端口,是不是很占用资源呢!label就把看成别名就可以了,方便操作指定的pod。


    往期精彩
    1. docker导学(一)
    2. 容器的技术概述(二)
    3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
    4. docker官网介绍(四)
    5. 如何在mac上安装docker(五)
    6. 如何在window上安装docker(六)
    7. 如何在mac上通过vagrant安装虚拟机(七)
    8. 如何在window上通过vagrant安装虚拟机(八)
    9. docker-Machine的本地使用(九)
    10. docker-Machine的本地使用(十)
    11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
    12. docker架构和底层技术(12)
    13. docker Image概述(13)
    14. 手动建立一个base Image(14)
    15. 什么是Container(15)
    16. 构建自己的Docker镜像(16)
    17. Dockerfile详解(17)
    18. 镜像的发布(18)
    19. Dockerfile实战(19)
    20. 容器的操作(20)
    21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
    22. 容器的资源限制(22)
    23. docker网络(23)
    24. docker学习必会网络基础(24)
    25. Linux网络命名空间(25)
    26. Docker Bridge详解(26)
    27. 容器之间的Link(27)
    28. 容器的端口映射(28)
    29. 容器网络之host和none(29)
    30. 多容器复杂应用的部署(30)
    31. overlay网络和etcd实现多机的容器通信(31)
    32. docker的数据持久化存储和数据共享(32)
    33. windows下vagrant 通过SecureCRT连接centos7(33)
    34. 数据持久化之Data Volume(34)
    35. 数据持久化之bind Mounting(35)
    36. docker 使用bind Mounting实战(36)
    37. docker容器安装wordpress(37)
    38. docker Compose到底是什么(38)
    39. Docker Compose的安装和基本使用(39)
    40. Docker 水平扩展和负载均衡(40)
    41. Docker compose 部署一个复杂的应用(41)
    42. 容器编排Docker Swarm介绍(42)
    43. docker-swarm创建一个多节点集群(43)
    44. play with docker 的使用(44)
    45. docker-swarm中的Service创建维护和水平扩展(45)
    46. 在docker-swarm集群里通过serivce部署wordpress(46)
    47. 集群服务间通信之RoutingMesh(47)
    48. RoutingMesh之Ingress负载均衡(48)
    49. Docker-Stack部署wordpress(49)
    50. Docker-Stack部署投票应用(50)
    51. Docker-Secret管理和使用(51)
    52. Docker service更新(52)
    53. Docker的收费模式(53)
    54. Docker-cloud介绍(54)
    55. Docker Cloud自动构建 Docker image(55)
    56. Docker企业版的在线免费体验(56)
    57. docker企业版本地安装之UCP(57)
    58. docker体验阿里云的容器服务(58)
    59. 阿里云安装Docker企业版UCP和DTR(59)
    60. Kubenetes简介(60)
    61. Minikube快速搭建K8S单节点环境(61)
    62. K8S最小调度单位Pod(62)
    63. K8S横向扩展功能ReplicaSet和ReplicationController(63)
    64. k8s重要的Deployment(64)
    65. Vagrant在本地搭建多节点K8S集群(65)
    66. k8s基础网络Cluster Network(66)
    67. k8s的Service简介和演示(67)

    相关文章

      网友评论

        本文标题:『中级篇』k8s的NodePort类型Service以及Labe

        本文链接:https://www.haomeiwen.com/subject/mbobbftx.html