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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
小程序开发实战:从零到一构建表格显示页面
在移动互联网时代,小程序以其轻量级、无需下载安装的特点,迅速成为开发者们的新宠。无论是电商、教育还是娱乐领域,小程序都发挥着举足轻重的作用。本文将带大家深入了解小程序的开发流程,并以一个具体的表格显示页面为例,展示如何运用小程序框架和API,从零到一构建一个功能完善的页面。
小白的大数据之旅
2024/12/24
2150
小程序开发实战:从零到一构建表格显示页面
一篇文章带你搞懂微信小程序的开发过程
小程序想必大家应该都不陌生了吧,今天小编带大家一起来学习下微信小程序的开发过程吧。
前端进阶者
2021/10/08
2.8K0
一篇文章带你搞懂微信小程序的开发过程
微信小程序:开发入门及案例详解
3)在填写项目信息之前,先创建一个空目录作为项目资源目录,这里我们以E:\weixin\demo为例
yeedomliu
2021/12/01
3.6K0
微信小程序:开发入门及案例详解
微信小程序开发--【Hello World 及代码结构】(二)
通过上一篇我们已经完成了注册及开发环境的搭建,今天我们来开发我们的第一个微信小程序 微信小程序开发注册流程
先知先觉
2019/01/21
8460
【Web实战】零基础微信小程序逆向
由于传播、利用本公众号亿人安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号亿人安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
亿人安全
2023/11/24
1.4K0
【Web实战】零基础微信小程序逆向
小程序开发实战项目:构建简易天气预报应用
随着移动互联网技术的飞速发展,小程序以其轻量级、无需下载安装、即用即走的特点,迅速成为了连接用户与服务的新桥梁。微信小程序作为其中的佼佼者,不仅拥有庞大的用户基础,还提供了丰富的开发工具和API接口,让开发者能够轻松构建出功能强大、体验优良的应用。 小程序开发基础
小白的大数据之旅
2025/05/16
1390
小程序开发实战项目:构建简易天气预报应用
微信小程序从入门到入土教程(01)
微信小程序:是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,可以理解为使用微信平台开发的app。
海拥
2021/08/23
6600
零基础学开发,她做了款「仿知乎」小程序 | 实战教程
有多少人是零基础,又想学小程序开发呢? 今天,知晓程序(微信号 zxcx0101)给大家分享一个励志案例:一个读大气科学、自学前端开发的妹子,因为喜欢逛知乎,自己做出了一款「仿知乎」小程序。 希望她
知晓君
2018/06/28
9690
微信小程序开发:基础架构与配置文件
在进行微信小程序开发之前,熟悉和掌握微信开发者工具是至关重要的。微信开发者工具为开发者提供了一个便捷的平台,可以在其中创建、调试和预览小程序的各个部分。通过这个工具,开发者可以实时查看小程序的效果,并进行必要的调整和优化。 微信小程序作为一种轻量化的应用形式,在移动应用生态中占据了重要位置。它不仅能够提供近乎原生应用的用户体验,还能通过微信社交平台的强大生态,快速获取用户并实现推广。 在开发微信小程序时,理解小程序的基本架构、页面生命周期、数据绑定、事件处理等知识点是至关重要的。此外,熟悉微信开发者文档和社区资源,能够帮助开发者快速解决问题并获取灵感。 在该文章系列中,我们将深入探讨微信小程序开发的关键知识点,包括但不限于页面布局、组件使用、API调用、数据存储与管理等内容。希望通过这些内容,能够为您提供实用且全面的小程序开发指南。 微信开发者工具下载
Srlua
2024/07/25
1950
微信小程序开发:基础架构与配置文件
微信小程序零基础入门----->结构说明
小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生App体验服务
用户5899361
2020/12/07
6280
微信小程序零基础入门----->结构说明
零基础微信小程序开发——认识小程序(保姆级教程+超详细)
今天是学习小程序的第一课,先来认识一下小程序!愿各位在学习的路上,一帆风顺,事业有成。
小白的大数据之旅
2025/05/16
8600
零基础微信小程序开发——认识小程序(保姆级教程+超详细)
微信小程序开发入门指南
大家好,今天将为大家介绍一下微信小程序的开发。微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。本文将从浅入深,以轻松易懂的方式为大家介绍微信小程序的开发。
陆业聪
2024/07/23
8160
微信小程序开发入门指南
小程序初学者必读——小程序的简单入门
环境搭建 申请账号 开发小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号你就可以管理你的小程序。 点击 https://mp.weixin.qq.com/wxopen/waregister?ac
腾讯NEXT学位
2018/05/29
9070
【黄啊码】怎么零基础学微信小程序
微信小程序众多行业案例.rar_小程序搜索功能-Javascript文档类资源-CSDN下载微信小程序各个行业的案例小程序搜索功能更多下载资源、学习资料请访问CSDN下载频道.
黄啊码
2022/06/15
7610
【黄啊码】怎么零基础学微信小程序
从零学习微信小程序(一)——基础知识
注意:如果有与app.json文件相同的配置项,页面中的配置项将会覆盖app.json中window中的配置项
小丞同学
2021/08/16
6080
微信小程序开发入门教程
微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图:
全栈程序员站长
2022/09/06
2.1K0
微信小程序开发入门教程
【小程序】小程序代码的构成
小程序官方建议把所有小程序的页面,都存放在 pages 目录中,以单独的文件夹存在,如图所
陶然同学
2023/02/24
3.6K0
【小程序】小程序代码的构成
微信小程序-代码结构介绍
微信小程序-代码结构介绍
Java架构师必看
2021/06/08
9750
微信小程序-代码结构介绍
零基础微信小程序开发——小程序的宿主环境(保姆级教程+超详细)
宿主环境(host environment)指的是程序运行所必须的依赖环境。例如: Android 系统和 iOS 系统是两个不同的宿主环境。安卓版的微信 App 是不能在 iOS 环境下运行的,所以,Android 是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的!
小白的大数据之旅
2025/05/16
960
零基础微信小程序开发——小程序的宿主环境(保姆级教程+超详细)
零基础微信小程序开发——页面配置(保姆级教程+超详细)
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,都保持一颗谦逊的心,尊重他人,虚心学习。 ✨推荐专栏: Python入门到入魔,Mysql入门到入魔,Python入门基础大全,Flink入门到实战 🍂若缘分至此,无法再续相逢,愿你朝朝暮暮,皆有安好,晨曦微露道早安,日中炽热说午安,星河长明寄晚安🍂
小白的大数据之旅
2024/12/24
3860
零基础微信小程序开发——页面配置(保姆级教程+超详细)
推荐阅读
相关推荐
小程序开发实战:从零到一构建表格显示页面
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验