您当前的位置: 首页 >  kubernetes
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

kubernetes service是什么

软件工程小施同学 发布时间:2020-11-05 10:03:24 ,浏览量:0

  一、service

service是pod的路由代理抽象,用于解决pod之间的服务发现问题,即上下游pod之间使用的问题。

传统部署方式中,实例所在的主机ip(或者dns名字)一般是不会改变的,但是pod的运行状态可动态变化(比如容器重启、切换机器了、缩容过程中被终止了等),所以访问端不能以写死IP的方式去访问该pod提供的服务。

service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理。

 

二、service和pod关系

三、service yaml文件
{
    "kind": "Service",
    "apiVersion": "v1",
    "metadata": {
        "name": "tomcat-yefp",
        "namespace": "default",
        "labels": {
            "name": "tomcat-yefp"
        }
    },
    "spec": {
        "ports": [
            {
                "protocol": "TCP",
                "port": 8080(访问端口),
                "targetPort": 8080
            }
        ],
        "selector": {
            "name": "app-tomcat(选择的pod的label)"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
    }
}

 

四、endpoint

Endpoint是可被访问的服务端点,即一个状态为running的pod,它是service访问的落点,只有service关联的pod才可能成为endpoint。 Endpoint、service和pod的关系:

 

 

五、更改NodePort限制

Kubernetes默认对外的NodePort限制范围为30000-32767, 这里如果要使用一些常用的端口(80, 8080, 443)需将这个范围放大.

vi /etc/kubernetes/manifests/kube-apiserver.yaml

在--service-cluster-ip-range与insecure-port间添加如下node port配置

- --service-cluster-ip-range=10.96.0.0/12
- --service-node-port-range=0-32767
- --insecure-port=0

重启服务  

systemctl restart kubelet

 

六、操作命令 1.创建Service
vi svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: demo
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 80
  selector:
    app: httpd-demo
kubectl create -f svc.yaml

 

Tip: 如果要对某一Pod或deployment添加对外访问端口, 这里service添加的selector的键值需与之相对应.

 

2. 查看所有服务
kubectl get service
kubectl get svc

 

2. 查看开放的端口
kubectl get svc demo

 

3. 服务描述
kubectl describe service demo

 

4.重启服务
systemctl restart kubelet

 

https://blog.csdn.net/bbwangj/article/details/81812675

 

 

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0423s