【GHS】k8s重器之Service

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-12-30

二、Service基本用法(1)通过yaml文件创建:apiVersion: v1kind: Servicemetadata: name: nginx-servicespec: type: NodePort selector: name: nginx-pod ports: - name: nginx-service port: 80 targetPort: 80 nodePort: 30080  比如上述,定义了一个Service,对应的是具有key=name,value=nginx-pod这个标签的Pod,type定义为NodePort,宿主机端口为80,对应Pod端口为80,而nodePort为30080通过如下命令创建Servicekubectl create -f service-name.yaml  创建之后查看:[图片] 可看到Service被分配的ip,对应的port以及选择的标签信息(2)负载均衡目前k8s提供了两种负载均衡策略:RoundRobin和SessionAffinity1、RoundRobin:轮询模式2、SessionAffinity:基于客户端IP地址进行会话保持模式,请求第一次到哪个Pod,则后续还会继续转发到那个Pod。默认情况下,采用轮询模式,但也可以 通过设置spec.sessionAffinity设置为ClientIP启用SessionAffinity策略接下来验证一下默认的轮询模式:创建两个具有key=name,value=nginx-pod标签的Pod,容器内运行nginx。nginx-one:apiVersion: v1kind: Podmetadata: name: nginx-pod1 labels: name: nginx-podspec: containers: - name: nginx-pod1 image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80  nginx-two:apiVersion: v1kind: Podm找到文件并进行修改,此处需要注意的是,由nginx镜像创建的容器并不具有vim和vi这两个编辑工具,所以这边使用sed或echo都行sed命令替换字符串格式是:sed -i 's/需要被替换字符串/替换后字符串/g' file-namesed -i 's/Welcome to nginx!/Welcome to nginx-pod two!/g' /usr/share/nginx/html/index.html  修改好后在浏览器访问:使用ip:nodePort访问[图片] [图片] 可以看到,service进行了负载均衡处理。三、集群外部访问Pod和Service(1)将Pod的端口号映射到宿主机比如将上述的nginx-pod1映射到主机的20080端口:apiVersion: v1kind: Podmetadata: name: nginx-pod1 labels: name: nginx-podspec: containers: - name: nginx-pod1 image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 hostPort: 20080  

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    106

  • 帖子

    82

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.3213s Mem:2057Kb