Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kubernetes(k8s)1.12.2集群搭建

Kubernetes(k8s)1.12.2集群搭建

作者头像
Java学习录
发布于 2019-04-18 07:24:50
发布于 2019-04-18 07:24:50
85600
代码可运行
举报
文章被收录于专栏:Java学习录Java学习录
运行总次数:0
代码可运行

本博客搭建k8s集群1.12.2版本

1. 准备2台以上最低2核4G的服务器
2. 关闭机器的防火墙
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl disable firewalldsystemctl stop firewalld

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[kubernetes]name=kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgenabled=1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgrpm --import rpm-package-key.gpgyum repolist
4. 安装docker和kubelet
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的话可以选择执行以下命令下载最新版

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install kubeadm docker-ce kubelet
5. 下载k8s镜像

这里分为两种场景

能上Google的同学看这个
  1. vim /usr/lib/systemd/system/docker.service 增加如下配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Environment="HTTPS_PROXY=http://www.ik8s.io:10080"Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"
  1. 加载配置文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl daemon-reload
  1. 设置docker开机启动并启动docker
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable dockersystemctl start docker
不能的同学看这个
  1. 设置docker开机启动并启动docker
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable dockersystemctl start docker
  1. 下载k8s镜像
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.12.2docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.12.2docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.12.2docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.12.2docker pull mirrorgooglecontainers/pause:3.1docker pull mirrorgooglecontainers/etcd-amd64:3.2.24docker pull coredns/coredns:1.2.2
  1. 镜像tag更新

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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. 验证网络
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /proc/sys/net/bridge/bridge-nf-call-ip6tablescat /proc/sys/net/bridge/bridge-nf-call-iptables

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

  1. 验证k8s依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rpm -ql kubelet

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/kubernetes/manifests   #清单目录/etc/sysconfig/kubelet   #配置文件/etc/systemd/system/kubelet.service  /usr/bin/kubelet   #主程序
  1. 设置k8s开启启动
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable kubelet
7. 初始化k8s
1. 系统检查
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 是否已经安装?
  • ……

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a

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

2. 系统检查
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/config
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get  nodes

查看节点status是否为NotReady

3. 安装flannel
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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 -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get  nodes

查看节点status是否为Ready

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

8. 配置节点服务器
  1. 拷贝master中的一些配置到节点服务器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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. 配置镜像
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgrpm --import rpm-package-key.gpg
  1. 安装docker 同上方第四步
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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并设置开启启动
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start dockersystemctl enable docker kubelet
  1. 加入集群管理 使用上方安装master结束后记住的命令加入到集群中
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm join 172.26.15.165:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a
  1. 验证 切换到master节点,再次使用以下命令查看节点数量是不是增加了一个呢
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get  nodes

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
10分钟搭建Kubernetes容器集群平台(kubeadm)
Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。
星哥玩云
2022/07/28
4150
10分钟搭建Kubernetes容器集群平台(kubeadm)
Kubernetes集群搭建超详细总结(CentOS版)
学习Kubernetes的关键一步就是要学会搭建一套k8s集群。在今天的文章中作者将最近新总结的搭建技巧,无偿分享给大家!废话不多说,直接上干货!
用户5927304
2021/06/29
2.3K3
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
 在部署Kubernetes的过程中,需要从k8s.grc.io仓库中拉取部署所需的镜像文件,但是由于国内对国外的防火墙问题导致无法正常拉取,下面介绍一个方法来解决此问题,完成Kubernetes的正常部署。
非著名运维
2022/06/22
5.1K1
Kubeadm快速部署Kubernetes1.13版本
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具 ,这个工具能通过两条指令完成一个kubernetes集群的部署,比纯手工安装方便。
kubernetes中文社区
2019/06/24
6380
Kubeadm快速部署Kubernetes1.13版本
【问题解决】This container is having trouble accessing https://k8s.gcr.io | 如何解决从k8s.gcr.io拉取镜像失败问题?
docker.io仓库对google的容器做了镜像,可以通过下列命令下拉取相关镜像:
看、未来
2022/05/06
5570
Centos上快速部署kubernetes(kubeadm)
因为使用yum安装的Kubectl使用的--cgroups-drive=systemd,而docker在安装的时候默认使用的是cgroup,因此需要将kubectl的cgroup-drive修改成cgroup
公众号: 云原生生态圈
2021/11/15
4290
Centos上快速部署kubernetes(kubeadm)
kubernetes-1:使用kubeadm搭建K8S单master节点集群
现在官方推荐的是kubespray,但也是基于kubeadm;除此之外,还有kind,minikube,但是并不试用于部署生产级别集群。
千里行走
2019/07/03
2.2K0
Kubernetes 环境搭建 - CentOS
三台 CentOS 7.4 服务器:kube1 、kube2 、kube3 ,配置:2 核 16G
轻量级云原生架构实验室
2018/08/02
6760
kubeadm安装kubernetes V1.11.1 集群
如果想要用二进制方法安装最新版本的Docker,可以参考我之前的文章在Redhat 7.3中采用离线方式安装Docker
大江小浪
2018/07/25
1.5K0
kubeadm安装kubernetes V1.11.1 集群
从入门到跑路之Kubernetes(五)
“ 今天我们一起来手动安装下K8S吧,使用kubeadm工具,好像还不是很难呢”
周萝卜
2019/07/17
3670
从入门到跑路之Kubernetes(五)
Web基础配置篇(十六): Kubernetes集群的安装使用
Kubernetes 简称为K8S,是用于自动部署,扩展和管理容器化应用程序的开源系统。Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
品茗IT
2020/05/28
1.5K0
Kubernetes集群部署中安装Pods网络插件一直显示Pending状态解决
完成后可以重启一下docker和kubelet,正常情况就都会running了。
非著名运维
2022/06/22
1.4K0
Hyperledger Fabric BaaS设计方案
Cello的定位是为Fabric提供一个BaaS平台,使用Web UI方便的管理区块链网络,节点和链码。
Zeal
2020/11/11
2K0
Hyperledger Fabric BaaS设计方案
kubernetes项目部署
上面设置好以后,配置会自动通过连接api server最终存储到etcd中去。但是上面的配置过程十分的复杂,除非你对网络十分的属性
曲奇小点点
2024/08/26
1510
kubernetes项目部署
Kubernetes 集群搭建
上一篇文章,我们介绍和对比了 Docker Swarm 和 Kubernetes:
用户3147702
2022/06/27
1.6K0
Kubernetes 集群搭建
K8S 之 kubeadm 安装
Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。
YP小站
2020/06/04
1.6K0
Kubernetes集群部署关键知识总结
  Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备的就尽量下载好。
欢醉
2019/05/25
1.4K0
初试 Kubernetes -集群搭建
主节点(个人很喜欢腾讯云的主机自动命名,内网IP之类的都已经在hostname里了,不容易出错)
bit20041436
2018/08/17
1.2K0
深入玩转K8S之使用kubeadm安装Kubernetes v1.10以及常见问题解答
Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。
DevinGeng
2019/04/09
1K0
手把手教你在CentOS上搭建Kubernetes集群
作者:ChamPly 安装CentOS 1.安装net-tools [root@localhost ~]# yum install -y net-tools 2.关闭firewalld [root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed
小小科
2018/05/04
1.9K1
推荐阅读
相关推荐
10分钟搭建Kubernetes容器集群平台(kubeadm)
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验