k8s kubeadm部署方式

本文详细介绍了如何在CentOS系统上搭建Kubernetes(K8s)集群,包括关闭防火墙、配置SSH免密登录、禁用SELinux和Swap、开启iptables桥接功能、安装Docker和Kubernetes组件,以及初始化Master节点。此外,还提到了网络插件Calico的安装步骤,以确保集群正常运行。在过程中,还解决了Docker cgroup driver的问题,并提供了节点加入集群时的token管理建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

节点机器准备工作

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

配置免密登陆

ssh-keygen -t rsa
ssh-copy-id node01

禁用SELinux

setenforce 0
/etc/sysconfig/selinux 中改SELINUX=disabled

禁用Swap

swapoff -a
/etc/fstab 中注释swap行

打开iptables桥接功能及路由转发

sysctl -a |grep bridge 过滤bridge不存在就用下面命令加载 br_netfilter
modprobe br_netfilter

/etc/sysctl.d/k8s.conf 中添加两行
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

在这里插入图片描述
各节点开启转发

在 /etc/sysctl.conf 中添加
net.ipv4.ip_forward = 1

执行
sysctl -p

在这里插入图片描述

部署k8s集群

部署docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker
docker --version

部署kubernetes

/etc/yum.repos.d/kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装、开机自启kubelet

yum -y install kubelet kubectl kubeadm

systemctl enable kubelet

配置Master节点初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 
--image-repository registry.aliyuncs.com/google_containers

#--pod-network-cidr 是之后网络分配给pod的地址段,需要提前规划,避免网段冲突。10.244.0.0/16为flannel默认网段

报错
[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/

则修改daemon.json,新增‘“exec-opts”: [“native.cgroupdriver=systemd”’]

[root@master ~]# more /etc/docker/daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

记录初始化中信息,方便节点加入
在这里插入图片描述
注意
tocken 有效期24h,过期后加节点需要生成新token

kubeadm token create

kubeadm token list

kubectl查看节点状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/b55dbcbfbbdf4f21940766c1af5b6774.png

此时因为没有装网络插件,所以是not ready

安装kubectl命令补全

yum -y install bash-completion
source /usr/share/bash-completion/bash_completion

source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

安装kubens工具用于namespace切换
插件地址:https://github.com/ahmetb/kubectx#manual-installation-macos-and-linux

tar -xf kubens_v0.9.4_linux_x86_64.tar.gz
ln -s /opt/kubens/kubens /usr/local/bin/kubens

安装网络插件Calico

获取calico.yaml

curl https://docs.projectcalico.org/manifests/calico.yaml -O

修改cidr,默认为注释
在这里插入图片描述
修改完安装

kubectl apply -f calico.yaml

calico安装完成后,集群转为ready状态
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值