kubeadm安装k8s集群详细手册
文章目录
- 一、k8s集群搭建
- 1.安装要求
- 2.关闭防火墙、selinux、swap分区
- 3.配置hostname、hosts、 iptables
- 4.配置k8s阿里源
- 5.部署k8s的master和node节点
- 6.安装网络插件(CNI)
- 7.开启ipvs
- 二、常见问题
- 1./proc/sys/net/ipv4/ip_forward contents are not set to 1
- 2.modprobe: FATAL: Module nf_conntrack_ipv4 not found
- 结尾
一、k8s集群搭建
1.安装要求
- 3台以上机器,操作系统 CentOS7.7以上64位系统
- 具备docker环境(docker搭建参考:docker安装部署实战详细手册)
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
ip | hostname |
---|---|
192.168.19.100 | master |
192.168.19.101 | node1 |
192.168.19.102 | node2 |
2.关闭防火墙、selinux、swap分区
##关闭防火墙
systemctl stop firewalld
systemctl disable firewalld##关闭swap分区
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab ## 把SELinux 设置为 permissive 模式(相当于禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
3.配置hostname、hosts、 iptables
##各自修改主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2##添加主机名与IP对应关系
echo '''
192.168.19.100 master
192.168.19.101 node1
192.168.19.102 node2
''' >> /etc/hosts## 允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOFcat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
4.配置k8s阿里源
#配置k8s的yum源地址
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF#安装 kubelet,kubeadm,kubectl
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9#启动kubelet
sudo systemctl enable --now kubelet
5.部署k8s的master和node节点
初始化master主节点
两个网段不要重,后面是/16,不要与当前机器网段一样
kubeadm init \
--apiserver-advertise-address=192.168.19.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
这里执行完会生成一串命令用于node节点的加入,记录下来,接着执行以下命令
mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
部署node节点
复制上面生成的一串命令,我这里只是示例,命令根据你实际生成的复制去node节点执行
kubeadm join 192.168.19.100:6443 --token ew01w0.s7951e0gggx5i6s7 --discovery-token-ca-cert-hash sha256:676f6de73444fdddba8510e0f61bba492cb190db86b8e5892d7a1e3c33411e75
如果之前加入过其他master,会报错:/etc/kubernetes/kubelet.conf already exists,执行reset即可
kubeadm reset
6.安装网络插件(CNI)
下面两种插件二选一,master上执行,如果是云服务器建议按照flannel,calico可能会和云网络环境有冲突
安装flannel插件(轻量级用于快速搭建使用,初学推荐)
下载yaml文件(如下载出现问题,可以拷贝下面网址内容,本地创建kube-flannel.yml)
wget https://github.com/xuwei777/xw_yaml/blob/main/kube-flannel.yml
修改net-conf.json下面的网段为上面init pod-network-cidr的网段地址(必须正确否则会导致集群网络问题)
sed -i 's/10.244.0.0/192.168.0.0/' kube-flannel.yml
修改完安装插件,执行
kubectl apply -f kube-flannel.yml
kubectl get pods -n kube-system
安装calico插件(用于复杂网络环境)
下载yaml文件(如下载出现问题,可以拷贝下面网址内容,本地创建calico-3.9.2.yaml)
wget https://github.com/xuwei777/xw_yaml/blob/main/calico-3.9.2.yaml
修改配置文件的网段为上面init pod-network-cidr的网段地址(必须正确否则会导致集群网络问题)
sed -i 's/192.168.0.0/192.168.0.0/g' calico-3.9.2.yaml
修改完安装插件,执行
kubectl apply -f calico-3.9.2.yaml
kubectl get pod --all-namespaces -o wide
7.开启ipvs
所有节点安装
yum -y install ipvsadm
#修改配置
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
主节点编辑 kube-proxy 配置文件,mode 修改成 ipvs
kubectl edit configmap -n kube-system kube-proxy
重启 kube-proxy
# 先查看
kubectl get pod -n kube-system | grep kube-proxy
# 再delete让它自拉起
kubectl get pod -n kube-system | grep kube-proxy |awk '{system("kubectl delete pod "$1" -n kube-system")}'
# 再查看
kubectl get pod -n kube-system | grep kube-proxy
查看 ipvs 转发规则
ipvsadm -Ln
二、常见问题
1./proc/sys/net/ipv4/ip_forward contents are not set to 1
echo "1" > /proc/sys/net/ipv4/ip_forward
2.modprobe: FATAL: Module nf_conntrack_ipv4 not found
高版本的内核nf_conntrack_ipv4被nf_conntrack替换了,所以装不了。modprobe nf_contrack_ipv4改成 nf_conntrack即可
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- br_netfilter
EOF
结尾
- 感谢大家的耐心阅读,如有建议请私信或评论留言。
- 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步
kubeadm安装k8s集群详细手册相关推荐
- (亲测无坑)Centos7.x使用kubeadm安装K8s集群1.15.0版本
基础环境配置 三台Centos7.x的服务器,主节点 cpu >=2,node节点>=1 注:(上述cpu为最低配置,否则集群安装部署会报错,无法启动,对其他硬件无硬性要求) 以下操作若无 ...
- 使用kubeadm安装k8s集群故障处理三则
最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...
- 使用kubeadm安装k8s集群的完整步骤(k8sv15.1)
一.创建虚拟机 首先使用vmware15 pro创建了4台centos7虚拟机,其中,3台用来组建k8s集群,1台为master节点,2台为node节点, 剩下的一台用来安装harbor配置私有仓库( ...
- kubeadm 安装 k8s 集群
文章目录 环境 三台 CentOS Version Ready 关闭所有防火墙 禁用 Selinux 关闭 swap 加入 host 信息 相关组件安装 Docker 安装 `kubelet`.`ku ...
- 【k8s系列】vmware中ubuntu22.04使用kubeadm安装k8s集群(1.24.4 or higher)(cka考试环境搭建)
文章目录 部署环境准备 环境修改 修改hostname(各修改各的) 修改hosts文件(master 和所有node ) 禁用swap(master 和所有node) 修改内核参数(master 和 ...
- kubeadm部署k8s集群最全最详细
一.安装要求 kubeadm安装kubernetes1.15 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 1.一台或多台机器(≥3奇数个),操作系统 CentOS7.x(最好是 ...
- kubeadm部署K8S集群并使用containerd做容器运行时
kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...
- linux下离线安装k8s集群1.19.4附带nfs存储(kubeadm方式)
linux下离线安装k8s集群1.19.4附带nfs存储 活动地址:毕业季·进击的技术er 一,环境简介 kubernetes-1.19.4集群部署计划 序号 服务器配置 IP地址 操作系统 备注 ...
- k8s集群详细安装步骤
k8s安装步骤 三台机器 192.168.168.151 master 192.168.168.152 node 192.168.168.153 node 安装步骤 准备工作,首先安装docker 安 ...
最新文章
- Directx11教程(42) 纹理映射(12)-简单的bump mapping
- 一口气说出 4种 “附近的人” 实现方式,面试官笑了
- 如何在Web应用程序中使用TWAIN驱动程序的自定义功能?
- 结合html和css制作页面的布局结构,CSS Div网页布局中的结构与表现
- matlab中求积函数,MATLAB软件及高斯勒让德求积公式MATLAB软件及高斯勒让德求积公式.doc...
- LeetCode LCP 11. 期望个数统计
- [转载] plt.hist()和numpy.histogram()的学习
- java db4o,有用过db4O的吗?
- 教你如何写Bug:Google Guava源码分析之——Joiner
- INT_MAX和INT_MIN的含义和用法
- css旋转45度_Matplotlib中的文字旋转问题
- 腾讯云域名解析:未检测到A记录,请前往您的解析服务商确认解析状态是否正常
- 【2021四川省赛】E.Don‘t Really Like How The Story Ends 图论
- 小学生学程序---百变服装
- 技术笔记:Wordpress建站,解决无法外网访问的方法
- App架构师实践指南四之性能优化一
- 资深美女基金经理首次分享基金知识,好评如潮!!!
- mysql登陆错误2003(hy000)_mysql远程无法登陆出现ERROR2003(HY000)...解决方法_MySQL
- 重命名Active Directory域名
- 新型勒索软件PYSA浅析
热门文章
- 别再说学不会:超棒的Numpy可视化学习教程来了!
- linux连接本机mysql数据库,Linux中MySQL连接本机数据库客户端
- java 调用.asmx_Java调用asmx的一个例子
- 【深圳】游戏公司招PHP开发工程师!!程序员看过来
- 机器学习:3个知乎大神回答、5个新人常见问题和3个学习规划
- Qt 之 自定义提示信息框—迅雷风格
- 翻转卡片动画|CSDN创作打卡
- B-样条基函数:计算实例
- 自动化测试工具QTP概述、安装及使用
- 3,4,5,6-四(9-咔唑基)-邻苯二腈,4CzPN cas:1416881-51-0光伏材料,齐岳定制