kubeadm安装高可用k8s集群

1.集群初始化设置

(1)配置阿里云源然后安装依赖包
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
(2)修改主机名
hostname k8s-master1 && bash
hostname k8s-master2 && bash
hostname k8s-master3 && bash
vim /etc/hosts

(3)关闭防火墙以及swap
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
setenforce 0 && sed -i ‘s/^SELINUX=./SELINUX=disabled/’ /etc/selinux/config
swapoff -a && sed -i ‘/ swap / s/^(.
)$/#1/g’ /etc/fstab
(4)配置固定ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33

切记修改dns
vim /etc/resolv.conf

(5)关闭系统不需要的服务
systemctl stop postfix && systemctl disable postfix
(6)调整内核参数,对于k8s

cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf
(7)调整时区

设置系统时区为 中国/上海

timedatectl set-timezone Asia/Shanghai

将当前的 UTC 时间写入硬件时钟

timedatectl set-local-rtc 0

重启依赖于系统时间的服务

systemctl restart rsyslog
systemctl restart crond
(8)设置 rsyslogd 和 systemd journald
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d

systemctl restart systemd-journald
(9)升级系统内核为 4.44
CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如:

安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuentry 中是否包含 initrd16
配置,如果没有,再安装一次!

yum –enablerepo=elrepo-kernel install -y kernel-lt

设置开机从新内核启动

reboot #重启服务器
(10)关闭 NUMA
cp /etc/default/grub{,.bak}
vim /etc/default/grub # 在 GRUB_CMDLINE_LINUX 一行添加 参数,如下所示:
diff /etc/default/grub.bak /etc/default/grub
6c6

2.kube-proxy开启ipvs的前置条件

modprobe br_netfilter

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

3.安装 Docker

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 update -y && yum install -y docker-ce
grub2-set-default “CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)”
由于更新以后内核选择3版本的 所以我们设置一下继续重启一下
systemctl start docker && systemctl start docker

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

4.导入镜像

docker image load docker image load tar xf kubeadm-basic.images.tar.gz

rm -rf /tmp/k8s-images.txt
启动haproxy
tar xf start.keep.tar.gz
cd data/lb/
vim haproxy.cfg

这里先添加一个本机的,其他的随后再加
vim start-haproxy.sh

如果配置文件路径不同也需要修改下面-v 映射的配置文件路径
./start-haproxy.sh
netstat -aunpt | grep 6444
启动keepalived
vim start-keepalived.sh

./start-keepalived.sh

scp start-* k8s-master1:/root/
scp start-* k8s-master2:/root/
scp haproxy.cfg k8s-master2:/root/
scp haproxy.cfg k8s-master1:/root/

修改haproxy.cfg还是用229节点因为贸然加入新的容易 错,等都启动以后我们在做调试

切记这是第一条别加错了(添加自己的我这里是我自己的。。。)

7.重启haproxy并且加载flannel 络插件

因为之前我们启动的haproxy配置文件只是单节点流量,我们要使3节点可以做分发请求,那么我们需要重启,之前没有多节点是因为我们只有一个节点装好了如果多节点可能会导致访问失败,kubectl是通过api进行交互来实现功能的

docker rm -f HAProxy-K8S && bash /root/aa/start-haproxy.sh #3节点都要做
kubectl apply -f kube-flannel.yml #如果这里失败了 pod是一直重启,那么就是前面你 段没设置好,需要在kubeadm config的文件中指定

8.修改集群连接地址

因为我们连接集群是连接VIP但是主master节点只需要连接自己本地api就可以就不需要写VIP了,写VIP会比较慢,所以把有VIP的节点改为他自己本身IP,可以加快访问速度,并且一旦他自己挂了,VIP可以漂移,那么同理当他漂移以后我们也可以把他漂移以后的节点改为
vim .kube/config

server: https://192.168.74.229:6444

注意:修改完之后,可能有些命令会不能用,每个节点都写自己本地ip

9.查看集群状态

kubectl get endpoints kube-controller-manager –namespace=kube-system -o yaml
查看controller-manager

kubeadm安装高可用k8s集群
表示有3个节点 集群状态健康

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月15日
下一篇 2019年8月15日

相关推荐