通过kubeadm init初始化master
名称 | ip |
k8s-master | 192.168.2.131 |
k8s-node01 | 192.168.2.132 |
k8s-node02 | 192.168.2.133 |
linux内核版本(所有节点)
确保服务器版本linux内核支持k8s安装 , 我使用的是linux5.12,如果版本不支持kubeadm init 执行的时候会报错
报错CONFIG_CGROUP_PIDS: not set;CGROUPS_PIDS: missing
- 查询linux版本
uname -a
如果版本太低,需要升级linux内核版本(所有节点)
#1、导入key rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #2、安装 elrepo 的yum源 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm #3. 安装内核,在yum的elrepo源中,有最新版本内核。直接yum安装即可。 yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel –y #4、查看当前可用内核版本: awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg #5、选择最新内核版本,0代表查看当前可用内核版本列表的左侧索引号 grub2-set-default 0 #6、生成grub文件 grub2-mkconfig -o /boot/grub2/grub.cfg #7、重启系统 reboot
设置hostname(所有节点)
#1、必须跑 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node01 hostnamectl set-hostname k8s-node02 #2、必须跑 echo k8s-master 192.168.2.231 >> /etc/hosts && echo k8s-node01 192.168.2.232 >> /etc/hosts && echo k8s-node02 192.168.2.233 >> /etc/hosts
以上代码第一步没跑会出问题,node名称不正常,后面kubeadm新增节点的时候也会节点名称不正常
关闭防火墙(所有节点)
systemctl stop firewalld systemctl disable firewalld systemctl status firewalld
关闭selinux(所有节点)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久 需重启 setenforce 0 # 临时
关闭swap(所有节点)
swapoff -a sed -i 's/^[^#].*swap/#&/' /etc/fstab systemctl daemon-reload
若要启用swap设备,则需要在集群初始化时添加--ignore-preflight-errors=swap,意义为忽略因swap设备导致的报错
关闭ipv6(所有节点)
echo net.ipv6.conf.all.disable_ipv6=1 >> /etc/sysctl.conf echo NETWORKING_IPV6=no >> /etc/sysconfig/network sed -i 's/IPV6INIT=yes/IPV6INIT=no/g' /etc/sysconfig/network-scripts/ifcfg-ens33 sysctl -p ip a # 查看ipv6是否关闭
将桥接的IPv4流量传递到iptables(所有节点)
cat >/etc/sysctl.d/kubernetes.conf << EOF net.bridge.bridge-nf-call-ip6tables =1 net.bridge.bridge-nf-call-iptables =1 EOF sysctl --system # 生效
同步时间(所有节点)
yum install -y ntpdate ntpdate time.windows.com sudo rm -f /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装docker(所有节点)
#1、下载源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo #2、安装docker yum -y install docker-ce-18.06.1.ce-3.el7 #3、启动docker systemctl enable docker && systemctl start docker #4、查看docker版本,看看有没有装成功 docker --version
修改docker下载地址
vim /etc/docker/daemon.json { "insecure-registries": ["192.168.2.233"], "exec-opts":["native.cgroupdriver=cgroupfs"], "registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"] }
不能有中文,不然docker重启报错。
重启进程
systemctl daemon-reload systemctl restart docker
安装k8s(所有节点)
#1、指定源 cat <<EOF > /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.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF #2、安装相关组件 yum install kubeadm.x86_64 kubectl.x86_64 kubelet.x86_64 -y #3、启动kubelet服务 systemctl enable kubelet.service systemctl start kubelet.service
k8s集群初始化(master节点执行)
kubeadm init --apiserver-advertise-address=192.168.2.231 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.1 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
如果不能下载docker镜像,报错如:
failed to pull image docker.mirrors.ustc.edu.cn/google_containers/coredns/coredns:v1.8.0: output: Error response from daemon: manifest for docker.mirrors.ustc.edu.cn/google_containers/coredns/coredns:v1.8.0 not found,则需要docker pull 镜像
docker pull coredns/coredns:v1.8.3 docker tag coredns/coredns:v1.8.0 gotok8s/coredns:v1.8.0 ..... kubeadm init --apiserver-advertise-address=192.168.2.231 --image-repository gotok8s --kubernetes-version v1.21.1 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
调整
注释以下两个文件的port=0的配置
/etc/kubernetes/manifests/kube-controller-manager.yaml
/etc/kubernetes/manifests/kube-scheduler.yaml
node加入集群
在master节点执行kubeadm token create --print-join-command ,获取join脚本
在node节点执行
kubeadm join 192.168.2.231:6443 --token 2b8ic3.05a95b6sdkhosyl3 --discovery-token-ca-cert-hash sha256:fd7ba1fdbd4e468feec1bf3918beb7b22dfb1fda43072d174a00e3c907e25e5a
失败重装
如果安装失败,执行命令:systemctl status kubelet 出现错误日志:Container not found in pod's containers ,把配置删掉再来一遍
kubeadm reset systemctl stop kubelet systemctl stop docker rm -rf /var/lib/cni/ rm -rf /var/lib/kubelet/* rm -rf /etc/cni/ ifconfig cni0 down ifconfig flannel.1 down ifconfig docker0 down ip link delete cni0 ip link delete flannel.1 systemctl start docker
相关推荐
0、kubeadm部署K8S集群.pdf 1、容器化的几种架构方式.pdf 2、POD创建过程.pdf 3、Scheduler的多种调度策略总结.pdf 4、应用热更新无损发布Ⅰ.pdf 4、应用热更新无损发布Ⅱ.pdf 4、应用热更新无损发布Ⅲ.pdf 5...
生产环境 kubeadm部署k8s 包括master高可用
kubeadm部署k8s集群.md
kubeadm部署k8s集群(1.20.11)
centos7.9使用kubeadm部署k8s v1.30.3
Kubernetes,简称K8s,是Google开源的一种容器编排系统,用于自动化容器化的应用程序部署、扩展和管理。本文将深入探讨使用kubeadm工具在本地环境部署Kubernetes集群1.13.0版本的过程,这是一项对于运维人员至关重要...
3.2配置HAProxy负载k8s的API接口 3.2.1 安装HAProxy 3.2.1 配置HAProxy 3.2.3 通过HaProxy节点地址访问HaProxy控制台 3.3配置keepalive实现HaProxy高可用 3.3.1安装keepalive 3.3.2创建HaProxy健康检查脚本 3.3.3...
使用kubeadm快速部署一个K8s集群,快速搭建k8s集群手顺
kubeadm部署k8s集群(1.9.2)-附件资源
在Centos中利用kubeadm工具安装和部署一个原生的kubernetes集群。
CentOS7+Kubeadm+K8S集群部署学习实践手册
使用kubeadm工具快速部署kubernetes集群,文中详细描述1master+2node节点的kubernetes集群部署。包含部署后进行dashboard以及flanel部署的yml文件。所有内容在centos7.3上部署成功且使用实际项目测试成功。
kubeadm部署高可用K8S集群v1.21 Kubernetes(K8S)是一种容器编排系统,可以自动化容器的部署、扩展和管理。Kubeadm是Kubernetes的自动化部署工具,可以快速部署高可用性Kubernetes集群。下面是kubeadm部署高可用K8...
kubeadm部署高可用k8s集群,haproxy+keepalived-版本k8s1.20.4,详细笔记总结文档
k8s离线文件包 Ubuntu 使用Kubeadm 离线安装k8s 参考连接 https://blog.csdn.net/u010952056/article/details/127276191?spm=1001.2014.3001.5501
此文档包含centos7系统部署k8s 1.16.2 版本的详细步骤,从初始化系统到部署成功,在不需要了解K8S原理基础下能部署成功
kubeadm与二进制构建k8s的区别: 1.安装方式不同:使用 kubeadm 创建的 Kubernetes 集群是使用预先打包好的二进制文件安装的,而使用二进制安装则需要手动下载和安装二进制文件。 2.部署步骤不同:使用 kubeadm ...
Kubernetes(简称k8s)是Google开源的一种容器编排系统,用于自动化容器化的应用程序部署、扩展和管理。kubeadm是Kubernetes提供的一种简单、可靠的方式来在集群中初始化节点和搭建控制平面,使得部署Kubernetes变得...
初始化kubeadm-ansible 准备和构建在kubeadm init上运行kubeadm init所需的主节点/工作节点的剧本firewalld:已启用CNI 以使用 Calico 或 Flannel 为前提(firewalld 设置是自动的) 设置为库存以禁用 firewalld参考...