适合新手的K8s完整部署教程
1、环境准备
1、VM16pro
2、centos7
2、先安装三台虚拟机,这里不做额外的叙述,要确保三台机器都可联网,同时记住三台机器的IP地址
使用命令:nmcli,会有如下图的提示
记住三台机器的IP地址。如果是新手的话,其实不用去固定IP,先去试试怎么部署都可以!
3、Centos7 需要重新设置镜像源,不然得话安装的时候会失败
1、备份原来镜像源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
2、更换阿里云的镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3、构建yum 元数据缓存
yum clean all
yum makecache
4、开始部署(开始之前建议都切换到root权限进行操作,使用命令:su -)
1、三台机器都需要执行以下操作
a:安装epel-release源
yum -y install epel-release
b:关于防火墙和selinx,避免与docker容器的防火墙规则出现冲突
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2、开始部署master主机,可随意选择一台作为根主机
a:安装etcd和kubernetes-master
yum install etcd
yum install kubernetes-master
b:编辑/etc/etcd/etcd.conf文件
vi /etc/etcd/etcd.conf
编辑如下:
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
c:编辑/etc/kubernetes/apiserver文件
vi /etc/kubernetes/apiserver
编辑如下:
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet-port=10250"
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission- control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""
d:启动并设置开机启动etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服务
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler;
do systemctl restart SERVICES;
systemctl status $SERVICES ;
done
这段代码需完整复制到命令行进行执行
e:etcd中定义flannel网络
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
3、以下操作在node1和node2节点进行操作
1、yum安装flannel和kubernetes-node
yum install -y flannel
yum install -y kubernetes-node
2、为flannel网络指定etcd服务
a:修改 /etc/sysconfig/flanneld文件
vi /etc/sysconfig/flanneld
修改如下(如果没有的话就新增上去):
FLANNEL_ETCD="http://192.168.146.129:2379"
FLANNEL_ETCD_KEY="/atomic.io/network"
注意:这里的192.168.146.129是我们的master主机的IP
b:修改/etc/kubernetes/config文件
vi /etc/kubernetes/config
修改如下:
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.146.129:8080"
c:修改对应node的配置文件/etc/kubernetes/kubelet
Node1的修改如下:
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=192.168.146.30" #修改成Node1的IP
KUBELET_API_SERVER="--api-servers=http://192.168.146.29:8080" #指定Master节点的 API Server
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
Node2:修改如下:
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=192.168.146.28" #修改成Node2的IP
KUBELET_API_SERVER="--api-servers=http://192.168.146.29:8080" #指定Master节点的 API Server
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
3、在Node1和Node2上同时执行以下代码进行启动kube-proxy,kebelet,docker,flanneld等服务,并且设置开机启动
for SERVICES in kube-proxy kubelet docker flanneld;
do systemctl restart SERVICES;
systemctl status $SERVICES;
done
以上代码需要复制到命令行中完整执行
5、进行验证
1、在Master节点上执行
kubectl get node
会出现以下内容,表示部署完毕~
至此一个简易的k8s 集群就部署完毕了,因为这个一个新手教程所以没有其他的东西在里面,适合完全不懂的人进行练手,如果你觉得还不错的话麻烦点个赞吧~蟹蟹啦
__EOF__
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型