Kubernetes-service~ipvs模式、kube-dns、headless、service实现外部访问

一.service介绍

Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应
用可以方便地实现服务发现和负载均衡。

service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)

service的类型:

 ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。
  NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个NodeIP:nodePort都将路由到ClusterIP。
    LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均衡器,并将请求转发到 :NodePort,此模式只能在云服务器上使用。
    ExternalName:将服务通过 DNS CNAME 记录方式转发到指定的域名(通过spec.externlName 设定)

二、IPVS模式

安装服务

yum install -y ipvsadm
lsmod |grep ip_vs

请添加图片描述

请添加图片描述

1.更改ipvs模式

更改配置文件的模式为ipvs

kubectl -n kube-system get cm

请添加图片描述

kubectl -n kube-system edit cm kube-system

请添加图片描述

修改未生效

ipvsadm -l

请添加图片描述

2.更新pod

更新kube-proxy pod

kubectl get pod -n kube-system |grep kube-proxy |awk '{system("kubectl delete pod "$1" -n kube-system")}'

请添加图片描述
再次查看

ipvsadm -ln

请添加图片描述

修改清单deployment.yaml 的镜像为myapp:v1
请添加图片描述

执行清单:

kubectl apply -f deployment.yaml
kubectl get pod

请添加图片描述

查看mysvc的详细信息:

kubectl describe svc mysvc

请添加图片描述
再次查看,刚才myapp节点生成的IP也出现了!

ipvsadm -ln

请添加图片描述
测试:访问IP

curl 10.102.253.86

可查看到访问次数

请添加图片描述

而且ip addr也可以看到这个ip!
请添加图片描述

三.kube-dns

k8s内内置dns解析服务,用于实现域名访问

kubectl  -n kube-system  get pod

 kubectl  -n kube-system  get  svc

请添加图片描述
创建并进入交互式pod,使用nslookup 命令查询dns记录,例如可以查看到mysvc的分配ip

kubectl  run demo --image=busyboxplus -it --restart=Never
 nslookup  mysvc.default

请添加图片描述
可以查看详细信息,看到Endpoints
dns端口为9153

kubectl  -n kube-system  describe  svc kube-dns 

请添加图片描述
查看域名解析pod节点信息如 ip

kubectl  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dudududu--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值