赞
踩
(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。
(2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用 /data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。
(3)编写service对应的yaml文件,使用NodePort类型和TCP 30000端口将Nginx服务发布出去。
(4)负载均衡区域配置Keepalived+Nginx,实现负载均衡高可用,通过VIP 192.168.10.100和自定义的端口号即可访问K8S发布出来的服务。
(5)iptables防火墙服务器,设置双网卡,并且配置SNAT和DNAT转换实现外网客户端可以通过12.0.0.1访问内网的Web服务。
实验架构
实验环境
节点 | IP地址 | 组件 |
---|---|---|
master01 | 192.168.10.130 | docker、kubeadm、kubelet、kubectl |
node01 | 192.168.10.132 | docker、kubeadm、kubelet、kubectl |
node02 | 192.168.10.133 | docker、kubeadm、kubelet、kubectl |
Ib01 | 192.168.10.134 | nginx,keepalived |
Ib02 | 192.168.10.135 | nginx,keepalived |
网关服务器 | 192.168.10.136 | iptables |
Client | 192.168.10.137 | 无 |
[root@master01 ~]#setenforce 0
setenforce: SELinux is disabled
[root@master01 ~]#systemctl disable --now firewalld
[root@master01 ~]#sed -i 's/enforcing/disabled/' /etc/selinux/config
[root@master01 ~]#iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
[root@master01 ~]#swapoff -a
[root@master01 ~]#sed -ri 's/.*swap.*/#&/' /etc/fstab
[root@master01 ~]#for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
并写入三台机子的hosts中
[root@master01 ~]#cat >> /etc/hosts << EOF
192.168.10.130 master
192.168.10.132 node01
192.168.10.133 node02
EOF
[root@master01 ~]#cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
[root@master01 ~]#sysctl --system
[root@master01 ~]#yum install -y yum-utils device-mapper-persistent-data lvm2
[root@master01 ~]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master01 ~]#mkdir /etc/docker/
[root@master01 ~]#cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
[root@master01 ~]#systemctl daemon-reload
[root@master01 ~]#systemctl
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。