前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『中级篇』k8s的Service简介和演示(67)

『中级篇』k8s的Service简介和演示(67)

原创
作者头像
IT架构圈
发布2018-09-15 01:15:51
1.2K0
发布2018-09-15 01:15:51
举报
文章被收录于专栏:IT架构圈

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

原文链接地址:『中级篇』k8s的Service简介和演示(67)

我们在使用pod的时候,pod之前可以相互ping通的,机器本身也可以ping通pod和另外机器的pod,如果是一个serivce的话,我们通过端口号,就可以访问service。源码:https://github.com/limingios/docker/tree/master/No.10

不要直接使用和管理Pods,为什么?

  • 当我们使用ReplicaSet 或者ReplicationController做水平扩展scale的时候,Pods可能被结束。
  • 当我们使用Deployment的时候,我们去更新Docker Image Version,旧的Pods会被结束,然后新的Pods创建,Ip地址发生了变化。

Service

  • kubectl expoese命令,会给我们的pod创建一个Service,供外部访问。
  • Service 主要有三种类型:
  • ClsterIP
  • NodePort
  • LoadBalancer
  • 另外也可以使用DNS,但是需要DNS的add-on

Service的演示

  • 创建service。
代码语言:txt
复制
get pod
kubectl get pod -o wide
kubectl expose pods nginx
#查看到已经创建的service
kubectl get  svc
  • 访问service
代码语言:txt
复制
ping 10.254.233.245
  • 创建deployment
代码语言:txt
复制
 cd deployk8s-master/
 cd labs/
 cd deployment/
more deployment_nginx.yml
代码语言:txt
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12.2
        ports:
        - containerPort: 80
代码语言:txt
复制
kubectl create -f deployment_nginx.yml
kubectl get pods -o wide 

我们进入node节点访问这些deployment

  • 创建deploy对应的service
代码语言:txt
复制
kubectl get deployment
expose deployment nginx-deployment
kubectl get svc

service内部的修改部署

代码语言:txt
复制
kubectl edit deployment nginx-deployment

PS:根据你修改的文件内容,它就自动更新了,但是ip没有发生改变,这就是service的强大。但是目前这种直接改deloyment文件的形式,不是推荐的因为他不是滚动更新,下次说下滚动更新。


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不要直接使用和管理Pods,为什么?
  • Service
  • Service的演示
  • service内部的修改部署
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档