Centos7 搭建Kubernetes集群踩坑记(1master 2node)

本文详细介绍如何从零开始搭建Kubernetes集群,包括准备Docker和Kubernetes环境,配置yum源,安装必要组件,设置开机自启,手动拉取并标记镜像,以及初始化Master和Node节点的全过程。

1.准备docker和kubernetes环境

获取yum源-否则下载不了docker kubexxx         

cd /etc/yum.repos.d/

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

vi kubernetes.repo

输入一下内容
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enable=1

保存退出后

rpm --import rpm-package-key.gpg
rpm --import yum-key.gpg

通过yum repolist 就可以查看是否配置成功 

master 运行 

yum install docker-ce kubelet-1.13.2 kubeadm-1.13.2 kubectl-1.13.2

node 运行 
 

yum install docker-ce kubelet-1.13.2 kubeadm-1.13.2 

安装完成之后----如果安装按顺序一个一个安装

需要修改docker 和kubelet 设置成开机自启 


systemctl enable docker

systemctl enable kubelet

设置kubelet禁用swap 

vi /etc/sysconfig/kubelet


KUBELET_EXTRA_ARGS="--fail-swap-on=false"

设置完成之后保存

kubelet 只有 kubeadm 启动起来之后才能显示 正常状态,

使用 kubeadm config images pull 检查kubernetes 启动需要的镜像

当你看到这个时候恭喜你,这是境外网站,需要翻墙,所以我们手动打tag let·s go

或者kubeadm init --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

docker pull mirrorgooglecontainers/kube-apiserver:v1.13.2
docker pull mirrorgooglecontainers/kube-proxy:v1.13.2
docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.2
docker pull mirrorgooglecontainers/kube-scheduler:v1.13.2
docker pull coredns/coredns:1.2.6
docker pull mirrorgooglecontainers/etcd:3.2.24
docker pull thejosan20/pause:3.1

漫长的手动tag 过程

docker tag mirrorgooglecontainers/kube-apiserver:v1.13.2 k8s.gcr.io/kube-apiserver:v1.13.2

docker tag mirrorgooglecontainers/kube-proxy:v1.13.2 k8s.gcr.io/kube-proxy:v1.13.2

docker tag mirrorgooglecontainers/kube-controller-manager:v1.13.2 k8s.gcr.io/kube-controller-manager:v1.13.2

docker tag mirrorgooglecontainers/kube-scheduler:v1.13.2 k8s.gcr.io/kube-scheduler:v1.13.2

docker tag mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24

docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6

docker tag thejosan20/pause:3.1 k8s.gcr.io/pause:3.1
master 执行 

kubeadm init --kubernetes-version=v1.13.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

启动成功返回 

kubeadm join 192.168.1.33:6443 --token a4831a.75ba0zv67qhzxzib --discovery-token-ca-cert-hash sha256:e40d2ed7c4f3e2526bd858c96a50963371fcd50fba0f0a420f67a988554835f0

token 24h有效期 过期使用 kubeadm token create 创建新的token 

node 节点启动  

直接执行返回的参数就行 记得加--ignore-preflight-errors=Swap 

 

### 如何在CentOS 7上设置Kubernetes集群 为了在CentOS 7上建立Kubernetes集群,可以采用类似于Ubuntu上的方法,即利用`kubeadm`工具来初始化主节点并加入工作节点。具体操作涉及安装必要的依赖项、配置容器运行时环境以及执行一系列命令以启动和管理集群。 #### 安装前准备 确保所有服务器的时间同步,并关闭防火墙和服务隔离策略(如SELinux),这有助于减少网络通信障碍[^1]。 #### 配置Containerd作为CRI 对于新版本的Kubernetes部署,推荐使用Containerd代替Docker作为容器运行时接口(CRI)。通过指定特定参数完成Containerd的安装与配置之后,需调整内核模块加载情况,使它们支持cgroup v2和其他必要特性[^2]。 ```bash modprobe overlay modprobe br_netfilter cat <<EOF | tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF ``` 接着创建或编辑`/etc/sysctl.d/k8s.conf`文件: ```bash cat <<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 ``` #### 初始化Master Node 一旦准备工作就绪,在选定为主控节点的一台机器上运行如下指令来进行初始化过程: ```bash sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 上述命令会返回一段用于添加其他节点到此集群的信息;务必保存这段信息以便后续步骤中应用它。 #### 设置kubectl访问权限 为了让普通用户能够顺利地管理和查看集群状态,还需要做额外的安全性和便利性的设定: ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=/etc/kubernetes/admin.conf ``` 这些命令使得当前用户的`.kube/config`指向了管理员级别的认证凭证,从而允许该用户拥有完整的API调用能力。 #### 加入Worker Nodes 最后一步是在每台想要成为worker node的工作站重复执行由前面提到的`kubeadm init`所给出的那一串连接字符串,通常形式如下所示: ```bash kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 至此,一个多节点组成的高可用性Kubernetes集群便构建完成了。当然,实际生产环境中可能还会涉及到更多高级特性的启用和支持服务的集成等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值