K8S的物理架构是master/node模式:
k8s集群至少需要一个主节点(master)和多个工作节点(worker),master节点是集群的控制节点,负责整个集群的管理和控制,主要用于暴露API,调度部署和对节点进行管理,工作接电脑主要是运行容器的。
部署:
一,初始化安装k8s集群的实验环境(2核4G)
1,修改机器IP,变成静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
二,环境设置:
角色 IP地址 主机名
master 192.168.1.11/24 hd1.com
node1 192.168.1.12/24 hd2.com
node2 192.168.1.13/24 hd3.com
三,基础环境
1,VMware网络配置:
更改NAT模式网卡:调整为分配192.168.1.0/24 网段地址(可自己设置)
虚拟机内部测试:查看网卡IP;ping www.baidu.com2,虚拟机网络配置:
master:systemctl stop NetworkManager
systemctl disable NetworkManager
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33(将dhcp改为static)如下:
node1:同上
node2:同上3,主机名配置:
master:hostnamectl set-hostname hd1.com && bash
node1: hostnamectl set-hostname hd2.com && bash
node2: hostnamectl set-hostname hd3.com && bash4,修改hosts文件:
master:192.168.1.11 hd1.com
192.168.1.12 hd2.com
192.168.1.13 hd3.com
修改完毕后测试:ping hd1.com && ping hd2.com && ping hd3.com5,配置ssh免密登录:
master:ssh-keygen
for i in 1 2 3;do ssh-copy-id hd${i}.com;done
node1: ssh-keygen
for i in 1 2 3;do ssh-copy-id hd${i}.com;done
node2: ssh-keygen
for i in 1 2 3;do ssh-copy-id hd${i}.com;done
测试:ssh hd1.com|hd2.com|hd3.com6,关闭swap分区:
临时关闭:swappoff -a
永久关闭:sed -i '/swap/d' /etc/fstab
测试:free ,发现swap全为07,修改内核参数:
for i in 1 2 3;do ssh hd${i}.com modprobe br_netfilter && echo "modprobe br_netfilter" >> /etc/profile && echo -e "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1\n" > /etc/sysctl.d/k8s.conf && sysctl -p /etc/sysctl.d/k8s.conf;done
8,关闭防火墙及SELINUX
for i in 1 2 3;do ssh hd${i}.com modprobe br_netfilter && echo "modprobe br_netfilter" >> /etc/profile && echo -e "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1\n" > /etc/sysctl.d/k8s.conf && sysctl -p /etc/sysctl.d/k8s.conf;done
9,配置时间同步:
for i in 1 2 3;do ssh hd${i}.com yum install -y ntpdate && ntpdate cn.pool.ntp.org;done
10,加载ip_vs模块
首先将ipvs.modules压缩包上传至/root目录下;
方法直接拖入后会在/tmp/VMwareDnD生成一个对应文件的目录,将该目录下的ip.modules文件移动到/root目录下即可。
for i in 1 2 3;do scp /root/ipvs.modules hd${i}.com:/etc/sysconfig/modules/ && ssh hd${i}.com bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs && echo -e "-----------------------------\nhd${i}.com";done11,配置源:
由于牵涉到创建目录,for循环可能会报错,所以可以选择逐个输入方式进行配置:
yum -y install lrzsz openssh-clients
mkdir /root/repo.bak
cd /etc/yum.repos.d/
mv * /root/repo.bak/
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install epel-release
三台主机都进行同样的安装;vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
三台同样的配置