没有合适的资源?快使用搜索试试~ 我知道了~
Kubeadm安装K8S单master节点集群
需积分: 2 1 下载量 162 浏览量
2024-05-24
11:08:06
上传
评论
收藏 1.1MB DOCX 举报
温馨提示
试读
24页
本文档主要讲解如何通过kubeadm安装k8s集群环境,如何规划,机器设置,安装网络组件calico,如何验证服务,如何扩容集群添加工作节点等。
资源推荐
资源详情
资源评论
Kubeadm 安装 K8S 单 master 节点集群
1.集群环境规划:
操作系统:centos7.9
配置: 4Gib 内存/4vCPU/60G 硬盘
网络:NAT
开启虚拟机的虚拟化:
podSubnet(pod 网段) 10.244.0.0/16
serviceSubnet(service 网段): 10.96.0.0/16
物理机网段:192.168.40.0/24
K8S 集群角色
IP
主机名
安装的组件
控制节点
192.168.40.180
jwpmaster
Apiserver,controller-manager,scheduler,etcd,kube-
proxy,docker,calico
工作节点
192.168.40.181
jwpnode1
Kubelet,kube-proxy,docker,calico,coredns
工作节点
192.168.40.182
jwpnode2
Kubelet,kube-proxy,docker,calico,coredns
2.初始化安装 k8s 集群的机器配置
2.1 修改机器 IP,变成静态 IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33 文件
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 #网卡名字,跟 DEVICE 名字保持一致即可
DEVICE=ens33 #网卡设备名,大家 ip addr 可看到自己的这个网卡设备名,每个人的机器可能这个名字不一样,需要写自己的
ONBOOT=yes #开机自启动网络,必须是 yes
BOOTPROTO=static #static 表示静态 ip 地址
IPADDR=192.168.40.180 #ip 地址,需要跟自己电脑所在网段一致
NETMASK=255.255.255.0 #子网掩码,需要跟自己电脑所在网段一致
GATEWAY=192.168.40.2 #网关,在自己电脑打开 cmd,输入 ipconfig /all 可看到
DNS1=192.168.40.2 #DNS,在自己电脑打开 cmd,输入 ipconfig /all 可看到
#修改配置文件之后需要重启网络服务才能使配置生效,重启网络服务命令如下:
service network restart
2.2.关闭 selinux
分别在 master、node1、node2 上执行下面的命令:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#修改 selinux 配置文件之后,重启机器,selinux 配置才能永久生效
reboot -f
查看状态:getenforce
Disabled
#显示 Disabled 说明 selinux 已经关闭
2.3.配置机器主机名
在 192.168.40.180 上执行如下:
[root@jiawap ~]# hostnamectl set-hostname jwpmaster && bash
在 192.168.40.181 上执行如下:
[root@jiawap ~]# hostnamectl set-hostname jwpnode1 && bash
在 192.168.40.182 上执行如下:
[root@jiawap ~]# hostnamectl set-hostname jwpnode2 && bash
2.4.升级操作系统
k8s 集群每台机器都操作:
[root@localhost ~]# yum update -y
2.5.配置主机 hosts 文件
相互之间通过主机名互相访问
修改每台机器的/etc/hosts 文件,增加如下三行:
192.168.40.180 jwpmaster
192.168.40.181 jwpnode1
192.168.40.182 jwpnode2
修改之后内容如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.180 jwpmaster
192.168.40.181 jwpnode1
192.168.40.182 jwpnode2
2.6.配置主机之间无密码登录
2.6.1.设置 master 机器
[root@jwpmaster~]# ssh-keygen
#一路回车,不输入密码
把本地生成的密钥文件和私钥文件拷贝到远程主机
[root@jwpmaster~]# ssh-copy-id xianchaomaster1
[root@jwpmaster ~]# ssh-copy-id jwpnode1
[root@jwpmaster ~]# ssh-copy-id jwpnode2
2.6.2.设置 node1 机器
[root@jwpnode1 ~]# ssh-keygen
#一路回车,不输入密码
把本地生成的密钥文件和私钥文件拷贝到远程主机
[root@jwpnode1 ~]# ssh-copy-id jwpmaster
[root@jwpnode1 ~]# ssh-copy-id jwpnode1
[root@jwpnode1 ~]# ssh-copy-id jwpnode2
2.6.3.设置 node2 机器
[root@jwpnode2 ~]# ssh-keygen
#一路回车,不输入密码
把本地生成的密钥文件和私钥文件拷贝到远程主机
[root@jwpnode2 ~]# ssh-copy-id jwpmaster
[root@jwpnode2 ~]# ssh-copy-id jwpnode1
[root@jwpnode2 ~]# ssh-copy-id jwpnode2
2.7.关闭交换分区 swap,提升性能
2.7.1.临时关闭
[root@jwpmaster ~]# swapoff -a
[root@jwpnode1 ~]# swapoff -a
[root@jwpnode2 ~]# swapoff -a
2.7.2.永久关闭
注释 swap 挂载,给 swap 这行开头加一下注释
[root@jwpmaster ~]# vim /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
[root@ jwpnode1 ~]# vim /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
[root@ jwpnode2 ~]# vim /etc/fstab
#给 swap 这行开头加一下注释#
#/dev/mapper/centos-swap swap swap defaults 0 0
2.7.3.为什么要关闭 swap 交换分区?
Swap 是交换分区,如果机器内存不够,会使用 swap 分区,但是 swap 分区的性能较低,k8s 设计的时候为了能提升性能,默认是不允许使用交换
分区的。Kubeadm 初始化的时候会检测 swap 是否关闭,如果没关闭,那就初始化失败。如果不想要关闭交换分区,安装 k8s 的时候可以指定--ignore-
preflight-errors=Swap 来解决。
2.8.修改机器内核参数
[root@jwpmaster ~]# modprobe br_netfilter
[root@jwpmaster ~]# echo "modprobe br_netfilter" >> /etc/profile
[root@jwpmaster ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
[root@jwpmaster ~]# sysctl -p /etc/sysctl.d/k8s.conf
分别给 node1、node2 机器按照上面的步骤修改。
2.8.1.sysctl 是做什么的?
在运行时配置内核参数
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf 中加载
2.8.2.为什么要执行 modprobe br_netfilter?
修改/etc/sysctl.d/k8s.conf 文件,增加如下三行参数:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.d/k8s.conf 出现报错:
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
解决方法:modprobe br_netfilter
2.8.3.为什么开启 net.bridge.bridge-nf-call-iptables 内核参数?
在 centos 下安装 docker,执行 docker info 出现如下警告:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
剩余23页未读,继续阅读
资源评论
JIAWAP
- 粉丝: 170
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功