Kubernetes(k8s)1.12.2集群搭建

本文详细介绍如何在两台服务器上搭建K8s集群,包括防火墙配置、镜像仓库设置、Docker与kubelet安装、网络验证、依赖检查、初始化配置、flannel安装以及节点服务器配置等关键步骤。

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

640?wx_fmt=gif
学习更多Java干货,戳上面的
蓝色字题
关注我!

本博客搭建k8s集群1.12.2版本

1. 准备2台以上最低2核4G的服务器
2. 关闭机器的防火墙
systemctl disable firewalld	
systemctl stop firewalld

生产环境下建议不要关闭防火墙,只开放k8s所用的端口

3. 配置docker和k8s仓库为阿里云镜像仓库

首先选择一台性能比较好的机器作为主节点

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  1. vim /etc/yum.repos.d/ubernetes.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	
enabled=1

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

4. 安装docker和kubelet
yum install kubeadm-1.12.2-0.x86_64 docker-ce-18.06.0.ce kubelet-1.12.2-0.x86_64

这里指定了docker和kubelet的版本,如果不指定的话默认下载最新的版本,如果你的服务器可以上Google的话可以选择执行以下命令下载最新版

yum install kubeadm docker-ce kubelet

5. 下载k8s镜像

这里分为两种场景

能上Google的同学看这个
  1. vim /usr/lib/systemd/system/docker.service  增加如下配置

Environment="HTTPS_PROXY=http://www.ik8s.io:10080"	
Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"

  1. 加载配置文件

systemctl daemon-reload

  1. 设置docker开机启动并启动docker

systemctl enable docker	
systemctl start docker

不能的同学看这个
  1. 设置docker开机启动并启动docker

systemctl enable docker	
systemctl start docker

  1. 下载k8s镜像

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.12.2	
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.12.2docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.12.2	
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.12.2	
docker pull mirrorgooglecontainers/pause:3.1	
docker pull mirrorgooglecontainers/etcd-amd64:3.2.24	
docker pull coredns/coredns:1.2.2

  1. 镜像tag更新

因为来自mirrorgooglecontainers或者coredns的镜像k8s是不认识的,所以我们需要修改一下上方下载的镜像的tag

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

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

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

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

	
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1	

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

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

6. 验证网络及k8s依赖
  1. 验证网络

cat /proc/sys/net/bridge/bridge-nf-call-ip6tables	
cat /proc/sys/net/bridge/bridge-nf-call-iptables

查看两条命令是否返回的都是1

  1. 验证k8s依赖

rpm -ql kubelet

执行以上命令看屏幕结果是否如下

/etc/kubernetes/manifests   #清单目录	
/etc/sysconfig/kubelet   #配置文件	
/etc/systemd/system/kubelet.service  	
/usr/bin/kubelet   #主程序

  1. 设置k8s开启启动

systemctl enable kubelet

7. 初始化k8s
1. 系统检查
kubeadm init --kubernetes-version=v1.12.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

注意如果使用最新版本的话不需要使用–kubernetes-version参数

命令执行后k8s会进行一系列的检查,比如说:

  • Linux 内核的版本必须是否是 3.10 以上?

  • Linux Cgroups 模块是否可用?

  • 机器的 hostname 是否标准?在 Kubernetes 项目里,机器的名字以及一切存储在 Etcd 中的 API 对象,都必须使用标准的 DNS 命名(RFC 1123)。

  • 用户安装的 kubeadm 和 kubelet 的版本是否匹配?

  • 机器上是不是已经安装了 Kubernetes 的二进制文件?

  • Kubernetes 的工作端口 10250/10251/10252 端口是不是已经被占用?

  • ip、mount 等 Linux 指令是否存在?

  • Docker 是否已经安装?

  • ……

检查结束以后如果没问题的话名字执行结束最后会有这样的一条指令出现

kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a

这个就是node节点需要加入主节点时所需要的token,很重要,记下来,一会会用到

2. 系统检查
mkdir -p $HOME/.kube	
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

kubectl get  nodes

查看节点status是否为NotReady

3. 安装flannel

 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

curl -sSL"https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -

kubectl get  nodes

查看节点status是否为Ready

至此master节点的配置已经完成了。

8. 配置节点服务器
  1. 拷贝master中的一些配置到节点服务器

scp /etc/yum.repos.d/CentOS-Base.repo docker-ce.repo kubernetes.repo 服务器ip:/etc/yum.repos.d/	
scp /etc/sysconfig/kubelet 服务器ip:/etc/sysconfig/

  1. 配置镜像

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

  1. 安装docker

yum install kubeadm-1.12.2-0.x86_64 docker-ce-18.06.0.ce kubelet-1.12.2-0.x86_64

  1. 启动docker和kubelet并设置开启启动

systemctl start docker	
systemctl enable docker kubelet

  1. 加入集群管理

kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a

  1. 验证

kubectl get  nodes

至此k8s集群就搭建完成了。

640?wx_fmt=gif

推荐阅读

640?wx_fmt=jpeg

 点赞收藏转发好看再走呗!

640?wx_fmt=gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值