使用kubeadm安装k8s集群的完整步骤(k8sv15.1)

本文详细介绍了如何使用kubeadm在虚拟机环境中安装配置k8s集群,包括环境准备、k8s部署、启用ipvs模式、设置私有Harbor仓库等步骤,确保集群稳定运行。
摘要由CSDN通过智能技术生成

一、创建虚拟机

	首先使用vmware15 pro创建了4台centos7虚拟机,其中,3台用来组建k8s集群,1台为master节点,2台为node节点,
剩下的一台用来安装harbor配置私有仓库(可选)。
	最大磁盘空间尽量大一点,我这里选择的是80G,虚拟磁盘文件存储为单个文件可以提升磁盘读写性能,一般不会有迁移的
情况。
![指定磁盘空间](https://img-blog.csdnimg.cn/20191128155126742.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk1NDIxNw==,size_16,color_FFFFFF,t_70)
	虚拟机的网络设置要特别注意,一定要保证各个虚拟机之间能相互访问,且虚拟机能访问外网,我使用的虚拟机网络设置为NAT模式,相关配置如下图,注意虚拟网关与虚拟网卡的IP地址不能相同,之前我误将这两个地址搞混了,全部设置为了192.168.238.1,导致虚拟机一直无法ping通百度,报错为域名无法解析。后将网关设置为192.168.238.2,虚拟网卡设置为192.168.238.1,网络正常。

虚拟网络编辑器设置

修改物理机的虚拟网卡地址

二、虚拟机环境准备

官网关于安装的必备环境说明,至少2G内存和2CPU,节点间全网络互联,每个节点都有单独的主机名和mac地址,开放对应端口,关闭swap分区。
在这里插入图片描述

1、修改虚拟机网卡配置文件

为了之后操作方便,先通过修改网卡配置文件,将虚拟机的ip地址设为静态ip。步骤如下:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33为使用的网卡名,默认为ens33,可根据实际情况修改

BOOTPROTO=static #改为static静态ip,默认为dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes #yes表示开机自动联网
IPADDR=192.168.238.128
GATEWAY=192.168.238.2
DNS1=8.8.8.8
DNS2=192.168.238.2	#网关ip
NETMASK=255.255.255.0

修改完成后重启网络配置使修改生效

systemctl restart network

其他虚拟机同样进行以上操作,完成后通过ping另外三台虚拟机的静态ip以及www.baidu.com判断内网和外网是否正常。

2、修改主机名

hostnamectl set-hostname xxx #我这里设置的主机名分别是 k8s-node01 k8s-node02 master harbor

修改后通过hostnamectl status查看主机名是否修改成功

3、修改/etc/hosts文件

修改hosts文件,来让各虚拟机间通过主机名能相互访问。

vi /etc/hosts #添加到文件末尾

192.168.238.128 k8s-node01
192.168.238.129 k8s-node02
192.168.238.130 k8s-node03
192.168.238.131 k8s-master

修改了一台虚拟机上的该文件后,可在该虚拟机上通过scp命令直接将该文件拷贝到其他各虚拟机。

scp /etc/hosts root@k8s-node02:/etc/hosts
scp /etc/hosts root@k8s-node03:/etc/hosts

4、安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wgetvimnet-tools git

5、设置防火墙为iptables并设置空规则

//关闭centos7默认的firewalld防火墙并取消自启
systemctl stop firewalld && systemctl disable firewalld

//安装Iptables管理工具&&启动Iptables&&设为Iptables开机自启&&清空Iptables规则&&保存Iptables默认规则

yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save

6、关闭selinux

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab   

//关闭swap分区,永久关闭虚拟内存。K8s初始化init时,会检测swap分区有没有关闭,如果虚拟内存开启,容器pod就可能会放置在虚拟内存中运行,会大大降低运行效率

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

7、调整内核参数,对于k8s

cat > kubernetes.conf <<EOF

net.bridge.bridge-nf-call-iptables=1

net.bridge.bridge-nf-call-ip6tables=1

net.ipv4.ip_forward=1

net.ipv4.tcp_tw_recycle=0

vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它

vm.overcommit_memory=1 # 不检查物理内存是否够用

vm.panic_on_oom=0 # 开启 OOM

fs.inotify.max_user_instances=8192

fs.inotify.max_user_watches=1048576

fs.file-max=52706963

fs.nr_open=52706963

net.ipv6.conf.all.disable_ipv6=1

net.netfilter.nf_conntrack_max=2310720 
EOF 

 

#其中必备参数

net.bridge.bridge-nf-call-iptables=1

net.bridge.bridge-nf-call-ip6tables=1  #开启网桥模式

net.ipv6.conf.all.disable_ipv6=1	#关闭ipv6的协议

#其余为优化参数,可不设置



cp kubernetes.conf /etc/sysctl.d/kubernetes.conf  #拷贝,开机能调用该配置文件

sysctl -p /etc/sysctl.d/kubernetes.conf  #手动刷新,使配置立刻生效

8、调整系统时区

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

timedatectl set-timezone Asia/Shanghai

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

timedatectl set-local-rtc 0

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

systemctl restart rsyslog
systemctl restart crond

9、关闭不需要的邮件服务

systemctl stop postfix && systemctl disable postfix

10、设置 rsyslogd 和 systemd journald

centos7默认有两个日志系统rsyslogd 和systemd journald同时在工作,修改journ

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值