🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、实践环境准备 #### 1、服务器说明 部署采用三主两从高可用部署方案 | 系统类型 | IP地址 | 节点角色 | CPU | Memory | hostname | | --- | --- | --- | --- | --- | --- | | centos-7.6 | 172.16.3.62 | master | \>=2 | \>=2G | master1 | | centos-7.6 | 172.16.3.63 | master | \>=2 | \>=2G | master2 | | centos-7.6 | 172.16.3.64 | master | \>=2 | \>=2G | master3 | | centos-7.6 | 172.16.3.65 | master | \>=2 | \>=2G | worker1 | | centos-7.6 | 172.16.3.66 | master | \>=2 | \>=2G | worker2 | #### 2、系统设置(所有节点) ##### 2.1 主机名设置 主机名必须每个节点都不一样,并且保证所有点之间可以通过hostname互相访问。 ~~~ # 查看主机名 $ hostname ​ # 修改主机名 $ hostnamectl set-hostname <your_hostname> ​ # 配置host,使主节点之间可以通过hostname互相访问 $ vi /etc/hosts # <node-ip> <node-hostname> 172.16.3.62 master1 172.16.3.63 master2 172.16.3.64 master3 172.16.3.65 worker1 172.16.3.66 worker1 ~~~ ##### 2.2安装依赖包 ~~~ # 更新yum $ yum update ​ # 安装依赖包 $ yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp ~~~ ##### 2.3关闭防火墙、swap,重置iptables ~~~ # 关闭防火墙 $ systemctl stop firewalld && systemctl disable firewalld ​ # 重置iptables $ iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT ​ # 关闭swap $ swapoff -a $ sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab ​ # 关闭selinux $ setenforce 0 ​ # 关闭dnsmasq(否则可能导致docker容器无法解析域名) $ service dnsmasq stop && systemctl disable dnsmasq ~~~ 2.4系统参数设置 ~~~ # 制作配置文件 $ cat > /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 vm.swappiness=0 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_watches=89100 EOF ​ # 生效文件 $ sysctl -p /etc/sysctl.d/kubernetes.conf ~~~ #### 3、安装docker(所有节点) ~~~ #使用yum安装 yum install -y docker #设置开机启动 systemctl start docker systemctl enable docker #更改挂载分区,选择较大的目录 mkdir -p /mnt/docker-data cat <<EOF > /etc/docker/daemon.json {    "graph": "/mnt/docker-data" } EOF #重启docker服务 service docker restart ~~~ #### 4、准备二进制文件 ##### 4.1配置免密登录 选择一个节点作为中转节点,配置使其可以免密登录其他节点,方便用于分发文件。 ~~~ # 看看是否已经存在rsa公钥 $ cat ~/.ssh/id_rsa.pub ​ # 如果不存在就创建一个新的 $ ssh-keygen -t rsa ​ # 把id_rsa.pub文件内容copy到其他机器的授权文件中 $ cat ~/.ssh/id_rsa.pub ​ # 在其他节点执行下面命令(包括worker节点) $ echo "<file_content>" >> ~/.ssh/authorized_keys ~~~ ##### 4.2下载二进制文件 官方下载地址(在CHANGELOG链接里面): [https://github.com/kubernetes/kubernetes/releases](https://github.com/kubernetes/kubernetes/releases) 网盘下载地址–推荐(我从官网下载整理好的文件): 链接: [https://pan.baidu.com/s/1\_w9vyQaDGLKDOf\_TU2Xu8Q](https://pan.baidu.com/s/1_w9vyQaDGLKDOf_TU2Xu8Q) 提取码: vca8 ##### 4.3分发文件并设置好PATH ~~~ # 把文件copy到每个节点上(注意替换自己的文件目录) $ ssh <user>@<node-ip> "mkdir -p /opt/kubernetes/bin" $ scp master/* <user>@<master-ip>:/opt/kubernetes/bin/ $ scp worker/* <user>@<worker-ip>:/opt/kubernetes/bin/ ​ # 给每个节点设置PATH $ ssh <user>@<node-ip> "echo 'PATH=/opt/kubernetes/bin:$PATH' >>~/.bashrc" ​ # 给自己设置path,后面会用到kubectl命令 $ vi ~/.bash_profile ~~~ #### 5、准备配置文件(中转节点)