Kubernetes 集群部署
确认主机的独立性
- 确认 MAC 地址独立
# cat /sys/class/net/eth0/address
- 确认系统 UUID 独立
# cat /sys/class/dmi/id/product_uuid
设置 Hostname 并修改 Hosts 文件
- 设置主机名 ( 以 master 为例 )
# hostnamectl set-hostname kubemaster
- 配置 HOSTS 文件 ( master和node的内容必须一致,先用 scp 复制 )
# echo -e "10.64.128.77\tkubemaster\n10.64.128.78\tnode1" >> /etc/hosts
- 设置公私钥
# mkdir ~/.ssh && chmod 700 ~/.ssh; ssh-keygen -t rsa # cat ~/.ssh/id_ras.pub > authorized_keys # chmod 600 ~/.ssh/authorized_keys # scp authorized_keys [dest_usr]@[dest_ip]:/home/[username]/.ssh/
安装指定版本 Docker
- 移除旧版(如果有的话)
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
- 安装必要的工具
# yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加软件源信息
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新 Yum 缓存
# yum makecache fast
- 查看可用的 Docker-CE 版本
# yum list docker-ce --showduplicates | sort -r
- 安装指定版本的 Docker
# yum install docker-ce-18.03.1.ce-1.el7.centos
更新 Linux 内核
- 确认内核版本(低于 5 的版本都必须更新)
# uname -r
- 添加 ELRepo 的校验 key
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- 安装 ELRepo
# yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
- 挑选有效的内核
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available --showduplicates
- 安装内核(可以根据第四步指定版本,这里就不指定了)
# yum --enablerepo="elrepo-kernel" install -y kernel-ml
- 调整默认内核启动顺序
# grub2-set-default 0 # grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启系统
# reboot
改变 Selinux 规则及关闭防火墙
- 关闭 Selinux
# setenforce 0 # sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
- 关闭防火墙
# systemctl stop firewalld # systemctl disable firewalld
关闭 Swap 分区并开启网桥
- 关闭 Swap 分区
# swapoff -a # cp /etc/fstab /etc/fstab_bak # sed -i "s/\/dev\/mapper\/centos-swap/# \/dev\/mapper\/centos-swap/" /etc/fstab # echo "vm.swappiness = 0" >> /etc/sysctl.conf # sysctl -p
- 配置网桥
# cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF # sysctl --system
安装 Kubeadm 及添加 Kubernetes 镜像
由于镜像是保存在 GCP 的,可能在拉去镜像时会失败,因此在这一步中,不同区域的服务器的操作会有所出入。不过大致的思路就是通过一些中转手段,把镜像获取下来。
墙内方案
- 安装 Kubeadm, Kubelet, Kubectl
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # yum install -y --nogpgcheck kubelet kubeadm kubectl --disableexcludes=kubernetes # systemctl enable kubelet && systemctl start kubelet
- 查看需要的镜像版本
# kubeadm config images list
墙外方案
- 安装 Kubeadm, Kubelet, Kubectl
# 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 # yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes # systemctl enable --now kubelet
- 直接拉取镜像
# kubeadm config images pull
评论
发表评论