kubeadm搭建k8s三节点集群

Kubeadm 部署3节点kubernetes 1.15(墙外环境)

国内环境请参考:
(k8s第一步:)[https://www.cnblogs.com/fanqisoft/p/11498049.html]
(k8s第二步:)[https://www.cnblogs.com/fanqisoft/p/11498217.html]
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。
已经发布的Kubernetes 1.15中,kubeadm对HA集群的配置已经达到beta可用,说明kubeadm距离生产环境中可用的距离越来越近了。

第一步

三节点分别对应设置系统主机名

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

三节点都添加hosts解析

cat >> /etc/hosts <<EOF
192.168.1.85   k8s-master
192.168.1.38   k8s-node1
192.168.1.119  k8s-node2
EOF

三节点都安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

三节点都设置防火墙为Iptables 并设置空规则

systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptalbes save

三节点都关闭swap虚拟内存和禁用SELINUX

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config

三节点都调整内核参数,对于k8s

cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1    # 将桥接的IPv4流量传递到iptables的链中
net.bridge.bridge-nf-call-ip6tables=1   # 将桥接的IPv4流量传递到iptables的链中
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1   # 禁用ipv6
net.netfilter.nf_conntrack_max=2310720
EOF
执行下面命令让上面的文件生效
sysctl -p /etc/sysctl.d/kubernetes.conf

三节点都设置rsyslogd和systemd journald

mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent

# 压缩历史日志
Compress=yes

SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000

# 最大占用空间 10G
SystemMaxUse=10G

# 单日志文件最大 200M
SystemMaxFileSize=200M

# 日志保存时间 2 周
MaxRetentionSec=2week

# 不将日志转发到 syslog
ForwardToSyslog=no
EOF

重启 systemd-journald 服务
systemctl restart systemd-journald

我的三节点是远程机房,不宜重启,暂时没有升级内核为4.44.还是3.10内核,由于自己测试环境,自己玩就没有做升级内核的操作,对于在虚拟机上搭建的集群,可以升级内核,按照下面的操作进行,设置后,需要重启。重启后使用uname -r查看内核版本。

<!----
升级系统内核为4.44
Centos7.x系统自带的3.10.x内核存在一些Bugs,导致运行的Docker、Kubernetes不稳定,例如:
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuentry 中是否包含 initrd16 配置,如果没有,再安装一次
yum --enablerepo=elrepo-kernel install -y kernel-lt

# 设置开机从新内核启动
grub2-set-default "CentOS Linux (4.4.202-1.el7.elrepo.x86_64) 7 (Core)"
# 重启后安装内核源文件
yum --enablerepo=elrepo-kernel install kernel-lt-devel-$(uname -r) kernel-lt-headers-$(uname -r)
---->

kube-proxy(主要解决SVC与POD之间的调度关系)开启ipvs(负载均衡能力更强)的前置条件
为了使用ipvs,而不是iptables来进行路由规则的创建,需要安装一些ipvs的依赖
三节点都执行

yum -y install ipset ipvsadm

三节点都执行,由于ipvs已经加入到了内核的主干,所以为kube-proxy开启ipvs的前提需要加载以下的内核模块:

modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。
要确保各个节点上已经安装了ipset软件包 yum -y install ipset ,为了便于查看ipvs的代理规则,最好还要确认是否安装了管理工具ipvsadm,yum -y install ipvsadm ipset
如果以上前提条件如果不满足,则即使kube-proxy的配置开启了ipvs模式,也会退回到iptables模式。

三节点都安装Docker
Kubernetes从1.6开始使用CRI(Container Runtime Interface)容器运行时接口。默认的容器运行时仍然是Docker,使用的是kubelet中内置dockershim CRI实现
三节点都执行

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
--查看最新的docker版本,以k8s-master节点为例:--
[root@k8s-master ~]# yum list docker-ce.x86_64  --showduplicates |sort -r

Kubernetes 1.15当前支持的docker版本列表是1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09,这里在各节点安装docker的18.09.7版本。

yum makecache fast
yum install -y --setopt=obsoletes=0 \
  docker-ce-18.09.7-3.el7 

# 启动docker,同时设置开机自启动
systemctl start docker && systemctl enable docker

确认一下iptables filter表中FOWARD链的默认策略(pllicy)为ACCEPT。
三节点都执行(以k8s-node1为例:)

[root@k8s-node1 ~]# iptables -nvL
----省略--------
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0    
----省略--------

三节点都修改docker cgroup driver为systemd
根据文档CRI installation中的内容,对于使用systemd作为init system的Linux的发行版,使用systemd作为docker的cgroup driver可以确保服务器节点在资源紧张的情况更加稳定,因此这里修改各个节点上docker的cgroup driver为systemd。
创建或修改/etc/docker/daemon.json:

cat >/etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d/

三节点都重新加载docker配置文件,启动docker,设置开机自启动:

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

可以查看docker安装信息,以k8s-node1为例:

[root@k8s-node1 ~]# docker info

第二步kubeadm安装部署K8S

使用Kubeadm部署Kubernetes
安装kubeadm和kubelet
三节点上都安装kubeadm 和kubelet,由于墙外环境,不需要修改官方K8S的yum源,就是用google k8s.gcr源。墙内环境,需要用阿里云的yum源,或者指定自己搭建的企业级DOCKER Registry仓库harbor(要保证仓库中你已经上传这些组件的镜像哦),在初始化的时候kubeadm init需要加入–image参数,或者在配置文件kubeadmin-config.yaml指定阿里云镜像仓库地址registry.aliyuncs.com/google_containers。默认是谷歌的:imageRepository: k8s.gcr.io

下面是添加k8s的yum源

 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
        https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

测试地址https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64是否可用,如果不可用需要科学上网。
由于我们墙外环境,所以就不存在科学上网了这一说法,哈哈哈
(我们省略这部,测试也没关系,会访问网页内容滴)

curl https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64

三节点都安装kubelet-1.15.1、kubeadm-1.15.1、kubectl-1.15.1

yum makecache fast
yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1

从安装结果可以看出还安装了 cri-tools, kubernetes-cni, socat 三个依赖:

  • 官方从Kubernetes 1.14开始将cni依赖升级到了0.7.5版本
  • socat是kubelet的依赖
  • cri-tools是CRI(Container Runtime Interface)容器运行时接口的命令行工具

由于kubelet需要和容器接口交互,启动我们的容器,而我们的k8s通过kubeadm安装出来以后都是以Pod的方式存在,也就是底层以容器的方式运行,所以kubelet一定要开机自启的,否则重启后我们k8s集群可能起不来。
三节点都执行

systemctl enable kubelet.service

初始化主节点k8s-master
使用kubeadm config print init-defaults 可以打印集群初始化默认需要使用的配置文件,对配置文件部分修改之后我们kubeadm init 初始化集群时需要用到这个配置文件:

[root@k8s-master root] cd /usr/local/install-k8s/core
[root@k8s-master core]# kubeadm config print init-defaults
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 1.2.3.4     # 默认为1.2.3.4修改为本机内网IP  192.168.1.85
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: k8s-master             
  taints:
  - effect: NoSchedule    # master节点不负责pod的调度,也就是master节点不充当work节点的角色
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io      # 默认安装镜像组件拉取的镜像源仓库地址
kind: ClusterConfiguration
kubernetesVersion: v1.16.0    # 注意:生成配置文件和我们要安装的k8s版本不同,需要为v1.15.1
networking:
  dnsDomain: cluster.local
  podSubnet: "10.244.0.0/16"      # 新增pod的网段,默认的配置文件是没有这个pod子网的,我们新增它,如果不新增,需要在初始化指定pod的子网段
  serviceSubnet: 10.96.0.0/12               # SVC的子网
scheduler: {}
kubeProxy:
  config:
    featureGates:
      SupportIPVSProxyMode: true
    mode: ipvs

k8s-master1上执行,生成kubeadm初始化配置文件kubeadm-config.yaml,根据上面进行部分修改。

kubeadm config print init-defaults > kubeadm-config.yaml

在进行初始化之前,我们可以先查看一下kubeadm部署k8s1.15.1需要哪些镜像。

[root@k8s-master ~]# kubeadm config images list --kubernetes-version=1.15.1
k8s.gcr.io/kube-apiserver:v1.15.1
k8s.gcr.io/kube-controller-manager:v1.15.1
k8s.gcr.io/kube-scheduler:v1.15.1
k8s.gcr.io/kube-proxy:v1.15.1
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
# 如果你是科学上网或者墙外环境,你可以先把这些镜像pull到master节点上,这样在进行初始化的时候就比较快了,本地有镜像了,就不需要去远程仓库拉取了

使用上面生成配置文件在master节点上进行初始化,这个kubeadm-init.log日志记录着node节点加入集群中的方式,不过也可以通过命令kubeadm token create --print-join-command找到这个加入集群方式的

kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log

使用指定的yaml文件进行初始化安装,自动颁发证书(v1.13后支持)把所有的信息都写入到 kubeadm-init.log中,其中–experimental-upload-certs 这个参数在最新版中已经被弃用了,官方推荐使用 –upload-certs 替代,官方公告:

kubeadm-init.log中记录了完成的初始化输出的内容,根据输出的内容基本上可以看出手动初始化安装一个Kubernetes集群所需要的关键步骤。 其中有以下关键内容:

  • init:指定版本进行初始化操作
  • preflight:初始化前的检查和下载所需要的 Docker 镜像文件
  • kubelet-start:生成 kubelet 的配置文件 var/lib/kubelet/config.yaml,没有这个文件 kubelet 无法启动,所以初始化之前的 kubelet 实际上启动不会成功
  • certificates:生成 Kubernetes 使用的证书,存放在 /etc/kubernetes/pki 目录中
  • kubeconfig:生成 KubeConfig 文件,存放在 /etc/kubernetes 目录中,组件之间通信需要使用对应文件
  • control-plane:使用 /etc/kubernetes/manifest 目录下的 YAML 文件,安装 Master 组件
  • etcd:使用 /etc/kubernetes/manifest/etcd.yaml 安装 Etcd 服务
  • wait-control-plane:等待 control-plan 部署的 Master 组件启动
  • apiclient:检查 Master 组件服务状态。
  • uploadconfig:更新配置
  • kubelet:使用 configMap 配置 kubelet
  • patchnode:更新 CNI 信息到 Node 上,通过注释的方式记录
  • mark-control-plane:为当前节点打标签,打了角色 Master,和不可调度标签,这样默认就不会使用 Master 节点来运行 Pod
  • bootstrap-token:生成 token 记录下来,后边使用 kubeadm join 往集群中添加节点时会用到
  • addons:安装附加组件 CoreDNS 和 kube-proxy

初始化完成后需要的工作,还是k8s-master1节点上
在当前的用户(我用的root)的Home目录下创建.kube目录(这个目录中保存我们的连接配置,kubectl和kube-Api进行https通讯,所以有一些缓存需要保存以及一些认证文件)

mkdir -p $HOME/.kube  

拷贝集群管理员的配置文件到这个目录下

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  

授予权限(所有者 所有组授予当前的用户)

sudo chown $(id -u):$(id -g) $HOME/.kube/config        

查看 k8s 节点状态

[root@k8s-master ~]# kubectl get node
NAME         STATUS     ROLES    AGE     VERSION
k8s-master   NotReady   master   7m46s   v1.15.1

此时主节点状态为NotReady,因为我们k8s集群要求一个扁平化的网络存在,由于我们还没构建flanneld网络插件。
下载flannel yaml文件

[root@k8s-master root] cd /usr/local/install-k8s/plugin/flannel
[root@k8s-master flannel] wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

创建flannel

[root@k8s-master flannel]# kubectl create -f kube-flannel.yml 
[root@k8s-master flannel]# kubectl get pod -n kube-system # -n 命名空间  

此时查看node状态应该为Ready状态

[root@k8s-master flannel]# kubectl get node
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   23m   v1.15.1

查看一下集群状态,确认个组件都处于healthy状态:

kubectl get cs
[root@k8s-master flannel]# kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"}   

获得kubeadm join命令参数方式有两种:
​ 1 在我们上面kubeadm init初始化的那个kubeadm-init.log日志中也可以找到。

​ 2 k8s-master 节点上执行下面命令。

kubeadm token create --print-join-command

在k8s-node1和k8s-node2上分别执行加入节点的命令:

kubeadm join 192.168.1.85:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:d3a817068b75095f3616f5dd029ee40960ab851a48162fc5e4a0808b8d786ad2 

在k8s-master节点上查看:

[root@k8s-master flannel]# kubectl get pod -n kube-system -o wide  # 可以在wide加入-w参数

此时查看node节点应该有3个,但子节点状态为notReady,等待子节点的flannel初始化完成即可。

[root@k8s-master flannel]# kubectl get nodes

*如果子节点执行加入主节点的命令报错的话,可以尝试执行kubeadm reset命令后重试

移除node节点以及之后的重新加入:

k8s-master节点上执行:

kubectl delete node k8s-node2

在k8s-node2节点上执行:

kubeadm reset 
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/

重新是node节点加入集群
如果我们忘记了Master节点的token,可以使用下面的命令来看:

kubeadm token list
[root@k8s-master core]# kubeadm token list
TOKEN                     TTL         EXPIRES                     USAGES                   DESCRIPTION                                           EXTRA GROUPS
5q91af.st35qitumttcwp7e   <invalid>   2019-11-23T16:22:16+08:00   <none>                   Proxy for managing TTL for the kubeadm-certs secret   <none>
abcdef.0123456789abcdef   <invalid>   2019-11-24T14:22:16+08:00   authentication,signing   <none>                                                system:bootstrappers:kubeadm:default-node-token
uw6dfy.cye0w06s06dms8q8   4h          2019-11-25T17:59:15+08:00   authentication,signing   <none>                                                system:bootstrapp

默认情况下,token的有效期是24小时,如果token已经过期的话,可以使用以下命令重新生成:

kubeadm token create

如果你找不到–discovery-token-ca-cert-hash的值,可以使用以下命令生成:

[root@master] ~$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
7845e6615fcae889eedd6fe55174d904ddd4d3ca5257f04c4438cc67cf06ba58

除了上面通过两次命令找token和hash,也可以直接一次性执行如下命令来获取:

kubeadm token create --print-join-command 

补充:如果你部署好后kube-proxy使用的还是iptables模式,这时需要修改为ipvs模式

[root@k8s-master ~]# kubectl get  configmap  -n kube-system
NAME                                 DATA   AGE
coredns                              1      24d
els1.v1                              1      8d
extension-apiserver-authentication   6      24d
flu1.v1                              1      8d
kib1.v1                              1      8d
kube-flannel-cfg                     2      24d
kube-proxy                           2      24d
kubeadm-config                       2      24d
kubelet-config-1.15                  1      24d
kubernetes-dashboard-settings        1      4d23h
kubernetes-dashboard.v1              1      10d
myfirst-release.v1                   1      10d
unsung-clam.v1                       1      10d
[root@k8s-master ~]# kubectl get pods -n kube-system |grep proxy
kube-proxy-6sp4j                        1/1     Running   0          24d
kube-proxy-hbnkf                        1/1     Running   0          22d
kube-proxy-ttjcn                        1/1     Running   0          24d

## 编辑ComfigMap kube-proxy大概在39行左右 把 mode: "" 修改为mode: "ipvs"
[root@k8s-master ~]# kubectl edit configmap kube-proxy -n kube-system
configmap/kube-proxy edited

## 对于Kubernetes来说,可以直接将这三个Pod删除之后,会自动重建,因为kube-proxy是由daemonset控制的
## 下面批量删除
[root@k8s-master ~]# kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'
pod "kube-proxy-6sp4j" deleted
pod "kube-proxy-hbnkf" deleted
pod "kube-proxy-ttjcn" deleted

## 由于我们已经通过ConfigMap修改了kube-proxy的配置,所以后期增加的Node节点,会直接使用ipvs模式。
[root@k8s-master ~]# kubectl get pods -n kube-system |grep proxy
kube-proxy-56l57                        1/1     Running   0          16s
kube-proxy-9cpth                        1/1     Running   0          18s
kube-proxy-rz27h                        1/1     Running   0          13s

[root@k8s-master ~]# kubectl logs kube-proxy-56l57 -n kube-system
I1218 02:07:49.322393       1 server_others.go:170] Using ipvs Proxier.
W1218 02:07:49.337427       1 proxier.go:401] IPVS scheduler not specified, use rr by default
I1218 02:07:49.337761       1 server.go:534] Version: v1.15.1
I1218 02:07:49.346725       1 conntrack.go:52] Setting nf_conntrack_max to 655360
I1218 02:07:49.346910       1 config.go:187] Starting service config controller
I1218 02:07:49.346945       1 controller_utils.go:1029] Waiting for caches to sync for service config controller
I1218 02:07:49.347014       1 config.go:96] Starting endpoints config controller
I1218 02:07:49.347059       1 controller_utils.go:1029] Waiting for caches to sync for endpoints config controller
I1218 02:07:49.447092       1 controller_utils.go:1036] Caches are synced for service config controller
I1218 02:07:49.447186       1 controller_utils.go:1036] Caches are synced for endpoints config controller

## 日志中打印出了Using ipvs Proxier,说明ipvs模式已经开启。
## 使用ipvsadm测试,可以查看之前创建的Service已经使用LVS创建了集群
[root@k8s-master ~]# ipvsadm -Ln 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.17.0.1:30001 rr
  -> 10.244.1.101:8080            Masq    1      0          0         
TCP  172.17.0.1:30003 rr
  -> 10.244.1.107:8080            Masq    1      0          0         
  -> 10.244.3.120:8080            Masq    1      0          0         
  -> 10.244.3.122:8080            Masq    1      0          0         
TCP  172.17.0.1:30004 rr
  -> 10.244.1.109:8080            Masq    1      0          0         
  -> 10.244.3.124:8080            Masq    1      0          0         
  -> 10.244.3.125:8080            Masq    1      0          0         
TCP  172.17.0.1:30005 rr
  -> 10.244.1.113:8080            Masq    1      0          0         
  -> 10.244.3.131:8080            Masq    1      0          0         
  -> 10.244.3.132:8080            Masq    1      0          0         
TCP  172.17.0.1:30100 rr
  -> 10.244.3.53:3000             Masq    1      0          0         
TCP  172.17.0.1:30973 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  172.17.0.1:31417 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  172.17.0.1:32515 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  172.17.0.1:32720 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  192.168.1.85:30000 rr
  -> 10.244.3.121:8080            Masq    1      0          303       
TCP  192.168.1.85:30001 rr
  -> 10.244.1.101:8080            Masq    1      0          138       
TCP  192.168.1.85:30002 rr
  -> 10.244.1.99:8080             Masq    1      0          38        
  -> 10.244.3.107:8080            Masq    1      0          39        
  -> 10.244.3.108:8080            Masq    1      0          39        
TCP  192.168.1.85:30003 rr
  -> 10.244.1.107:8080            Masq    1      1          85        
  -> 10.244.3.120:8080            Masq    1      0          85        
  -> 10.244.3.122:8080            Masq    1      0          85        
TCP  192.168.1.85:30004 rr
  -> 10.244.1.109:8080            Masq    1      0          39        
  -> 10.244.3.124:8080            Masq    1      0          40        
  -> 10.244.3.125:8080            Masq    1      0          39        
TCP  192.168.1.85:30005 rr
  -> 10.244.1.113:8080            Masq    1      0          28        
  -> 10.244.3.131:8080            Masq    1      0          27        
  -> 10.244.3.132:8080            Masq    1      1          26        
TCP  192.168.1.85:30100 rr
  -> 10.244.3.53:3000             Masq    1      0          6         
TCP  192.168.1.85:30200 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  192.168.1.85:30300 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  192.168.1.85:30973 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  192.168.1.85:31306 rr
  -> 10.244.3.28:443              Masq    1      0          0         
TCP  192.168.1.85:31417 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  192.168.1.85:32515 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  192.168.1.85:32720 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  10.96.0.1:443 rr
  -> 192.168.1.85:6443            Masq    1      24         0         
TCP  10.96.0.10:53 rr
  -> 10.244.0.2:53                Masq    1      0          0         
  -> 10.244.0.3:53                Masq    1      0          0         
TCP  10.96.0.10:9153 rr
  -> 10.244.0.2:9153              Masq    1      0          0         
  -> 10.244.0.3:9153              Masq    1      0          0         
TCP  10.96.206.146:3000 rr
  -> 10.244.3.53:3000             Masq    1      0          0         
TCP  10.97.146.74:8080 rr
  -> 10.244.1.99:8080             Masq    1      0          0         
  -> 10.244.3.107:8080            Masq    1      0          0         
  -> 10.244.3.108:8080            Masq    1      0          0         
TCP  10.99.35.223:80 rr
  -> 10.244.1.116:80              Masq    1      0          0         
  -> 10.244.3.135:80              Masq    1      0          0         
TCP  10.99.129.252:443 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  10.99.202.26:8080 rr
  -> 10.244.1.107:8080            Masq    1      0          0         
  -> 10.244.3.120:8080            Masq    1      0          0         
  -> 10.244.3.122:8080            Masq    1      0          0         
TCP  10.100.176.231:8080 rr
  -> 10.244.1.109:8080            Masq    1      0          0         
  -> 10.244.3.124:8080            Masq    1      0          0         
  -> 10.244.3.125:8080            Masq    1      0          0         
TCP  10.101.14.181:9093 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  10.101.116.209:3306 rr
  -> 10.244.3.84:3306             Masq    1      0          0         
TCP  10.102.235.237:44134 rr
  -> 10.244.1.57:44134            Masq    1      0          0         
TCP  10.104.118.54:8080 rr
  -> 10.244.1.101:8080            Masq    1      0          0         
TCP  10.104.145.175:9090 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  10.105.187.124:80 rr
  -> 10.244.1.115:80              Masq    1      0          0         
  -> 10.244.1.117:80              Masq    1      0          0         
  -> 10.244.3.134:80              Masq    1      0          0         
  -> 10.244.3.136:80              Masq    1      0          0         
TCP  10.106.155.187:443 rr
  -> 10.244.1.65:6443             Masq    1      0          0         
TCP  10.107.97.209:80 rr
  -> 10.244.3.48:80               Masq    1      0          0         
TCP  10.108.122.242:8080 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  10.108.213.51:443 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  10.108.229.146:80 rr
  -> 10.244.1.118:80              Masq    1      0          0         
  -> 10.244.3.137:80              Masq    1      0          0         
TCP  10.109.8.33:80 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  10.109.8.33:443 rr
  -> 10.244.3.28:443              Masq    1      0          0         
TCP  10.109.29.143:80 rr
  -> 10.244.1.115:80              Masq    1      0          0         
  -> 10.244.1.117:80              Masq    1      0          0         
  -> 10.244.3.134:80              Masq    1      0          0         
  -> 10.244.3.136:80              Masq    1      0          0         
TCP  10.109.173.247:9200 rr
  -> 10.244.1.70:9200             Masq    1      0          0         
  -> 10.244.3.60:9200             Masq    1      0          0         
TCP  10.109.220.225:8080 rr
  -> 10.244.1.113:8080            Masq    1      0          0         
  -> 10.244.3.131:8080            Masq    1      0          0         
  -> 10.244.3.132:8080            Masq    1      0          0         
TCP  10.111.13.187:8080 rr
  -> 10.244.3.121:8080            Masq    1      0          0         
TCP  10.244.0.0:30000 rr
  -> 10.244.3.121:8080            Masq    1      0          0         
TCP  10.244.0.0:30001 rr
  -> 10.244.1.101:8080            Masq    1      0          0         
TCP  10.244.0.0:30002 rr
  -> 10.244.1.99:8080             Masq    1      0          0         
  -> 10.244.3.107:8080            Masq    1      0          0         
  -> 10.244.3.108:8080            Masq    1      0          0         
TCP  10.244.0.0:30003 rr
  -> 10.244.1.107:8080            Masq    1      0          0         
  -> 10.244.3.120:8080            Masq    1      0          0         
  -> 10.244.3.122:8080            Masq    1      0          0         
TCP  10.244.0.0:30004 rr
  -> 10.244.1.109:8080            Masq    1      0          0         
  -> 10.244.3.124:8080            Masq    1      0          0         
  -> 10.244.3.125:8080            Masq    1      0          0         
TCP  10.244.0.0:30005 rr
  -> 10.244.1.113:8080            Masq    1      0          0         
  -> 10.244.3.131:8080            Masq    1      0          0         
  -> 10.244.3.132:8080            Masq    1      0          0         
TCP  10.244.0.0:30100 rr
  -> 10.244.3.53:3000             Masq    1      0          0         
TCP  10.244.0.0:30200 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  10.244.0.0:30300 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  10.244.0.0:30973 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  10.244.0.0:31306 rr
  -> 10.244.3.28:443              Masq    1      0          0         
TCP  10.244.0.0:31417 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  10.244.0.0:32515 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  10.244.0.0:32720 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  10.244.0.1:30000 rr
  -> 10.244.3.121:8080            Masq    1      0          0         
TCP  10.244.0.1:30001 rr
  -> 10.244.1.101:8080            Masq    1      0          0         
TCP  10.244.0.1:30002 rr
  -> 10.244.1.99:8080             Masq    1      0          0         
  -> 10.244.3.107:8080            Masq    1      0          0         
  -> 10.244.3.108:8080            Masq    1      0          0         
TCP  10.244.0.1:30003 rr
  -> 10.244.1.107:8080            Masq    1      0          0         
  -> 10.244.3.120:8080            Masq    1      0          0         
  -> 10.244.3.122:8080            Masq    1      0          0         
TCP  10.244.0.1:30004 rr
  -> 10.244.1.109:8080            Masq    1      0          0         
  -> 10.244.3.124:8080            Masq    1      0          0         
  -> 10.244.3.125:8080            Masq    1      0          0         
TCP  10.244.0.1:30005 rr
  -> 10.244.1.113:8080            Masq    1      0          0         
  -> 10.244.3.131:8080            Masq    1      0          0         
  -> 10.244.3.132:8080            Masq    1      0          0         
TCP  10.244.0.1:30100 rr
  -> 10.244.3.53:3000             Masq    1      0          0         
TCP  10.244.0.1:30200 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  10.244.0.1:30300 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  10.244.0.1:30973 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  10.244.0.1:31306 rr
  -> 10.244.3.28:443              Masq    1      0          0         
TCP  10.244.0.1:31417 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  10.244.0.1:32515 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  10.244.0.1:32720 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  127.0.0.1:30000 rr
  -> 10.244.3.121:8080            Masq    1      0          0         
TCP  127.0.0.1:30001 rr
  -> 10.244.1.101:8080            Masq    1      0          0         
TCP  127.0.0.1:30002 rr
  -> 10.244.1.99:8080             Masq    1      0          0         
  -> 10.244.3.107:8080            Masq    1      0          0         
  -> 10.244.3.108:8080            Masq    1      0          0         
TCP  127.0.0.1:30003 rr
  -> 10.244.1.107:8080            Masq    1      0          0         
  -> 10.244.3.120:8080            Masq    1      0          0         
  -> 10.244.3.122:8080            Masq    1      0          0         
TCP  127.0.0.1:30004 rr
  -> 10.244.1.109:8080            Masq    1      0          0         
  -> 10.244.3.124:8080            Masq    1      0          0         
  -> 10.244.3.125:8080            Masq    1      0          0         
TCP  127.0.0.1:30005 rr
  -> 10.244.1.113:8080            Masq    1      0          0         
  -> 10.244.3.131:8080            Masq    1      0          0         
  -> 10.244.3.132:8080            Masq    1      0          0         
TCP  127.0.0.1:30100 rr
  -> 10.244.3.53:3000             Masq    1      0          0         
TCP  127.0.0.1:30200 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  127.0.0.1:30300 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  127.0.0.1:30973 rr
  -> 10.244.1.86:8080             Masq    1      0          0         
  -> 10.244.3.85:8080             Masq    1      0          0         
TCP  127.0.0.1:31306 rr
  -> 10.244.3.28:443              Masq    1      0          0         
TCP  127.0.0.1:31417 rr
  -> 10.244.1.60:8443             Masq    1      0          0         
TCP  127.0.0.1:32515 rr
  -> 10.244.3.66:5601             Masq    1      0          0         
TCP  127.0.0.1:32720 rr
  -> 10.244.3.28:80               Masq    1      0          0         
TCP  172.17.0.1:30000 rr
  -> 10.244.3.121:8080            Masq    1      0          0         
TCP  172.17.0.1:30002 rr
  -> 10.244.1.99:8080             Masq    1      0          0         
  -> 10.244.3.107:8080            Masq    1      0          0         
  -> 10.244.3.108:8080            Masq    1      0          0         
TCP  172.17.0.1:30200 rr persistent 10800
  -> 10.244.1.67:9090             Masq    1      0          0         
  -> 10.244.3.56:9090             Masq    1      0          0         
TCP  172.17.0.1:30300 rr persistent 10800
  -> 10.244.1.66:9093             Masq    1      0          0         
  -> 10.244.3.54:9093             Masq    1      0          0         
  -> 10.244.3.55:9093             Masq    1      0          0         
TCP  172.17.0.1:31306 rr
  -> 10.244.3.28:443              Masq    1      0          0         
UDP  10.96.0.10:53 rr
  -> 10.244.0.2:53                Masq    1      0          0         
  -> 10.244.0.3:53                Masq    1      0          0       

文章作者: 阿培
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 阿培 !
 上一篇
Yaml语法 Yaml语法
简单说明是一个可读性高,用来表达数据序列的格式。YAML 的意思其实是: 仍是一种标记语言,但为了强调这种语言以数据作为中心,而不是以标记语言为重点 基本语法 缩进时不允许使用Tab键,只允许使用空格 缩进的空格个数不重要,只要相同层级的元
2019-11-24
下一篇 
Centos7-yum安装lnmp环境 Centos7-yum安装lnmp环境
yum安装nginx\php\mysql,搭建lnmp环境yum升级 yum update yum安装nginx最新源 yum localinstall http://nginx.org/packages/centos/7/noarch/R
2019-11-14
  目录