设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
K8s(Kubernetes)简介及安装部署
返回列表
发新帖
K8s(Kubernetes)简介及安装部署
[复制链接]
|
主动推送
51
|
0
|
2024-9-11 08:17:34
|
显示全部楼层
|
阅读模式
k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。
k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。
如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack。那么管理容器所对应的开源平台是什么呢?k8s就是其中之一,在k8s之前也有很多容器管理平台,有docker自身的docker swarm,也有apache推出的Mesos等等。相比较而言,虽然k8s比其他推出的晚了些,但是丝毫不影响其火爆程度,除了其功能强大外,更何况它还有个好爹。
关于k8s更详细的介绍,可以移步至k8s中文文档或者k8s官方网站 ,以便查看更多资料。
接下来开始安装部署k8s。
博文大纲:
一、环境准备
二、部署前准备1、检查docker版本、关闭防火墙及Selinux、清空iptables规则、禁用Swap交换分区2、配置ssh免密登录、主机名解析及yum源3、打开iptables桥接功能及路由转发
三、配置k8s群集1、安装部署k8s相关工具2、初始化k8s集群3、配置master节点状态4、配置node01及node02加入master群集5、部署后的优化配置一、环境准备
注:上述三台centos 7.3服务器,均运行docker服务,如果是测试环境,那么内存最少2G,CPU至少双核,并且docker服务的版本不建议过高,最好是18.09及以下。
如需部署docker服务,可参考博文:Docker的安装详细配置二、部署前准备1、检查docker版本、关闭防火墙及Selinux、清空iptables规则、禁用Swap交换分区
注:以下操作需要在三台docker主机上分别配置一次,哪怕是在生产环境,都需要进行以下操作,因为k8s有它自己的安全策略。
[root@master ~]# docker -v #确认docker版本Docker version 18.09.0, build 4d60db4#关闭防火墙[root@master ~]# systemctl stop firewalld[root@master ~]# systemctl disable firewalld#关闭Selinux[root@master ~]# setenforce 0 [root@master ~]# vim /etc/sysconfig/selinux SELINUX=disabled #将此处改为disabled[root@master ~]# iptables -F #清空iptables规则#重启docker服务[root@master ~]# systemctl daemon-reload[root@master ~]# systemctl restart docker#禁用swap交换分区[root@master ~]# swapoff -a #临时禁用swap[root@master ~]# vim /etc/fstab #打开自动挂载的配置文件,将swap配置项注释掉#/dev/mapper/cl-swap swap swap defaults 0 0#就注释掉上面那行[root@node02 ~]# mount -a #重新加载挂载的配置文件[root@node02 ~]# free -h #确认输出的swap行如下(都为0):Swap: 0B 0B 0B2、配置ssh免密登录、主机名解析及yum源
注:以下没有特别说明的操作,在master主机上操作即可
[root@master ~]# tail -3 /etc/hosts #在该文件添加三台主机的解析192.168.20.6 master192.168.20.7 node01192.168.20.8 node02#配置ssh免密登录(为了方便在主机间复制配置文件,可不做)[root@master ~]# ssh-keygen -t rsa [root@master ~]# ssh-copy-id node01[root@master ~]# ssh-copy-id node02#将更改后的hosts文件发送到node01及node02[root@master ~]# scp /etc/hosts node01:/etc/[root@master ~]# scp /etc/hosts node02:/etc/#接下来配置yum源[root@master ~]# vim /etc/yum.repos.d/kubernetes.repo #编辑yum文件[kubernetes]name=kubnetersbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=0#以上url是阿里开源镜像站,可复制网址自行查看[root@master yum.repos.d]# yum repolist #查看刚刚配置的yum源中有没有可用的包kubernetes kubneters 421 #返回的这一行不可为0[root@master yum.repos.d]# yum makecache #制作yum元数据缓存#将yum源的配置文件复制到另外两台节点主机上[root@master ~]# scp /etc/yum.repos.d/kubernetes.repo node01:/etc/yum.repos.d/[root@master ~]# scp /etc/yum.repos.d/kubernetes.repo node02:/etc/yum.repos.d/#在另外两台主机上,都需执行以下两条命令[root@node01 ~]# yum repolistkubernetes kubneters 421 #返回的这一行不可为0[root@node01 ~]# yum makecache3、打开iptables桥接功能及路由转发
同样,没有特别说明的配置,在master上进行配置即可。
#打开iptables桥接功能[root@master ~]# vim /etc/sysctl.d/k8s.conf #写入以下配置net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1[root@master ~]# sysctl -p /etc/sysctl.d/k8s.conf #刷新配置net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1# PS:如果报错“找不到文件”,需要执行下面的命令以便加载一个模块。[root@master ~]# modprobe br_netfilter #加载br_netfileter模块#将配置的k8s.conf文件复制到另外两台节点[root@master ~]# scp /etc/sysctl.d/k8s.conf node01:/etc/sysctl.d/[root@master ~]# scp /etc/sysctl.d/k8s.conf node02:/etc/sysctl.d/#将配置文件复制到另外两台节点后,需要在node01及02上分别执行下面的命令进行刷新[root@node02 ~]# sysctl -p /etc/sysctl.d/k8s.conf #刷新配置文件#接下来开启路由转发(三台docker主机上都需要进行以下操作)[root@master ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf#开启路由转发[root@master ~]# sysctl -p #刷新配置net.ipv4.ip_forward = 1
配置至此,部署前的工作就完成了。
在进行接下来的操作前,需要先下载我提供的镜像。三、配置k8s群集1、安装部署k8s相关工具
注:以下操作在master主机上进行
[root@master ~]# yum -y install kubelet-1.15.0-0 kubeadm-1.15.0-0 kubectl-1.15.0-0 #安装k8s的master所需组件[root@master ~]# systemctl enable kubelet #将kubelet加入开机自启,但现在不要启动[root@master ~]# mkdir images [root@master ~]# cd images/[root@master images]# rz #上传我提供的所有镜像包,共8个镜像包[root@master images]# ls #确认上传的镜像包coredns-1-3-1.tar kube-proxy-1-15.taretcd-3-3-10.tar kube-scheduler-1-15.tarkube-apiserver-1-15.tar myflannel-11-0.tarkube-controller-1-15.tar pause-3-1.tar#接下来导入上传的镜像包到docker镜像中[root@master ~]# pwd #脚本不要和镜像在同一个目录/root[root@master ~]# vim a.sh #编写脚本如下#!/bin/bashcd /root/images/for i in `ls`do docker load [root@master ~]# mkdir -p $HOME/.kube[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[root@master ~]# chown $(id -u):$(id -g) $HOME/.kube/config
返回的信息截图如下,供参考:
3、配置master节点状态
[root@master images]# kubectl get nodes #查看群集节点信息NAME STATUS ROLES AGE VERSIONmaster NotReady master 14m v1.15.0#可以看到master当前状态为未准备
接下来可以去github官网进行以下操作以便查看相应的命令:
点击进入后,下拉页面到以下位置,并复制指定的命令到master节点执行一下:
[root@master images]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml#执行在github官网复制的命令
以上只是方式之一,在网络状况良好的情况下建议使用上述方法(调用远端文件执行一下),若网速较差,建议使用以下方法:
[root@master images]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml#将github官网指定的.yml配置文件下载到本地[root@master images]# ls | grep flannel.yml #确定下载到了当前目录kube-flannel.yml[root@master images]# kubectl apply -f kube-flannel.yml #指定下载的.yml文件执行相应命令
上述方法,二选一进行配置即可。
[root@master&nb
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
愿为素心人
140
主题
0
回帖
86
积分
注册会员
注册会员, 积分 86, 距离下一级还需 114 积分
注册会员, 积分 86, 距离下一级还需 114 积分
积分
86
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装