k8s 查看pod流量_k8s使用kube-router网络插件并监控流量状态

简介

kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负载均衡,使用iptables来做网络的隔离策略。部署简单,只需要在每个节点部署一个daemonset即可,高性能,易维护。支持pod间通信,以及服务的代理。

安装# 本次实验重新创建了集群,使用之前测试其他网络插件的集群环境没有成功# 可能是由于环境干扰,实验时需要注意# 创建kube-router目录下载相关文件mkdir kube-router && cd kube-router

wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml

wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter-all-features.yaml# 以下两种部署方式任选其一# 1. 只启用 pod网络通信,网络隔离策略 功能kubectl apply -f kubeadm-kuberouter.yaml# 2. 启用 pod网络通信,网络隔离策略,服务代理 所有功能# 删除kube-proxy和其之前配置的服务代理kubectl apply -f kubeadm-kuberouter-all-features.yaml

kubectl -n kube-system delete ds kube-proxy# 在每个节点上执行docker run --privileged --net=host registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.10.2 kube-proxy --cleanup# 查看kubectl get pods --namespace kube-system

kubectl get svc --namespace kube-system

测试# 启动用于测试的deploymentkubectl run nginx --replicas=2 --image=nginx:alpine --port=80

kubectl expose deployment nginx --type=NodePort --name=example-service-nodeport

kubectl expose deployment nginx --name=example-service# dns及访问测试kubectl run curl --image=radial/busyboxplus:curl -i --tty

nslookup kubernetes

nslookup example-service

curl example-service# 清理kubectl delete svc example-service example-service-nodeport

kubectl delete deploy nginx curl

监控相关数据并可视化

重新部署kube-router# 修改yml文件cp kubeadm-kuberouter-all-features.yaml kubeadm-kuberouter-all-features.yaml.ori

vim kubeadm-kuberouter-all-features.yaml

...

spec:

template:

metadata:

labels:

k8s-app: kube-router

tier: node

annotations:

scheduler.alpha.kubernetes.io/critical-pod: ''

# 添加如下参数,让prometheus收集数据

prometheus.io/scrape: "true"

prometheus.io/path: "/metrics"

prometheus.io/port: "8080"

spec:

serviceAccountName: kube-router

serviceAccount: kube-router

containers:

- name: kube-router

image: cloudnativelabs/kube-router

imagePullPolicy: Always

arg

你可能感兴趣的:(k8s,查看pod流量)