企业入门实战--k8s之ipvs

IPVS模式的Service实现

安装软件

yum install - ipvsadm -y

在这里插入图片描述

kubectl -n kube-system get pod |grep proxy 查看proxy
kubectl -n kube-system get pod -o wide |grep proxy

在这里插入图片描述
在这里插入图片描述

kubectl -n kube-system get cm
kubectl -n kube-system edit cm kube-proxy ###更改模式
mode: "ipvs"

在这里插入图片描述
在这里插入图片描述
删除文件使其生效

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

在这里插入图片描述

vim deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:v1

在这里插入图片描述

 kubectl apply -f svc.yaml
 kubectl get pod
 kubectl describe svc.yaml 
 kubectl describe svc
 ipvsadm -ln

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Service实现外部访问

NodePort方式

kubectl edit svc mysvc 修改文件



在这里插入图片描述
查看svc修改信息

kubectl get svc

在这里插入图片描述
master端和node端都会暴露出端口

netstat -antlp|grep 30548

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
外部直接访问端口即可
curl 172.25.5.2/hostname.html
在这里插入图片描述
进入容器中查看解析

kubectl run demo -it --image=busyboxplus --restart=Never

nslookup mysvc

在这里插入图片描述
查看svc的endpoint

kubectl -n kube-system describe svc kube-dns

在这里插入图片描述

Headless无头模式

无头模式,外部访问,可直接访问服务名称

vim headless.yaml
cat headless.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
    - name: http
      port: 80
      targetPort: 80
  selector:
      app: myapp
  clusterIP: None


拉起容器,查看svc信息

kubectl apply -f headless.yaml
kubectl get svc

在这里插入图片描述
进入容器终端查看解析

kubectl run demo --image=busyboxplus -it --restart=Never

nslookup nginx-svc

在这里插入图片描述
可以直接访问服务名
在这里插入图片描述

loadbanlacer

server1
拉取镜像

docker pull quay.io/metallb/speaker:v0.10.2
docker pull quay.io/metallb/controller:v0.10.2
docker push reg.westos.org/metallb/speaker:v0.10.2
docker push reg.westos.org/metallb/controller:v0.10.2

在这里插入图片描述

在这里插入图片描述
server2

kubectl edit configmaps -n kube-system kube-proxy ## 编辑文件
ipvs:
excludeCIDRs: null
minSyncPeriod: 0s
scheduler: ""
strictARP: true
syncPeriod: 0s
tcpFinTimeout: 0s
tcpTimeout: 0s
udpTimeout: 0s
kind: KubeProxyConfiguration

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

在这里插入图片描述

cd metallb/
vim metallb.yaml ## 创建服务
Client:
Debug Mode: false
Server:
Containers: 31
Running: 16
Paused: 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值