VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群

VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群

  • 1. 下载CentOS 7官方minimal镜像
  • 2. 安装VituralBox(Windows 10 64位)
  • 3. 安装Git for windows(Windows 10 64位)
  • 4. 安装VituralBox虚拟机并创建CentOS 7 Master主机
  • 5. 设置CentOS 7的网络环境和ssh连接(开放22端口)
  • 6. 构建CentOS虚拟机局域网
  • 7. Master主节点配置kubernetes+docker
  • 8. Node子节点配置kubernetes+docker
  • 附录

    


 

1. 下载CentOS 7官方minimal镜像

  • 安装迅雷软件
  • 使用迅雷访问官方地址,下载镜像:http://mirrors.huaweicloud.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

 

2. 安装VituralBox(Windows 10 64位)

  • 官方下载地址:https://download.virtualbox.org/virtualbox/6.0.4/VirtualBox-6.0.4-128413-Win.exe

 

3. 安装Git for windows(Windows 10 64位)

       官方下载地址:https://git-scm.com/download/win

       下载完成后,直接安装,下一步下一步就好了,主要是用于接上虚拟机输入命令,复制粘贴命令和文本非常方便,安装完成后,点击Git Bash可以看到以下界面:

       


 

4.安装VituralBox虚拟机并创建CentOS 7 Master主机

      VituralBox是“下一步,下一步”的“傻瓜式安装”,这里注意下,安装位置不要选择C盘,因为会占用硬盘大量的空间,导致系统非常卡顿!

       安装完成后,在CMD界面输入“ifconfig”,查看虚拟网卡是否存在,存在就是装好了:

      

      打开VirtualBox主界面,如下图所示,点击新建:

      

     新建虚拟机,切记保存位置不能选择C盘!,名字为“CentOS7-Master”,点击“下一步”

     

    内存至少分配3.5GB,下一步,创建虚拟硬盘

     

    创建虚拟硬盘->VDI->动态分配->硬盘大小至少分配20G以上,创建

     ​    ​     ​            ​ 

     这时我们看到已经创建成功了,点击“启动”,载入下载好的CentOS7 minimal镜像ISO文件

    

      点击设置->显示→显示控制器更改为“VBoxVGA”(这一步是为了防止,启动后无法显示鼠标,就无法安装CentOS7 了)

      

      设置完成后,选择“Install CentOS 7”,这里我们选择“英语”(美国),下一步,点击“安装位置”,选择分配的硬盘空间,下一步,设置用户名和密码,安装完成,点击重启

     ​  ​                                             

​   ​  

 


5. 设置CentOS 7的网络环境和ssh连接(开放22端口)

     输入用户名root,root密码,进入CentOS 7,这时我们输入“ping www.baidu.com”发现网卡无法访问外网,这时,输入命令

sudo  vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    # 找到 ONBOOT,把 no 改成 yes ,保存退出

​  ​  

重启虚拟机后,执行命令,yum环境可以使用了

sudo yum install net-tools

sudo vi /etc/ssh/sshd_config

  # 把 Port 22 前面的#注释去掉

firewall-cmd --permanent --zone=public --add-port=22/tcp  # 输入命令,把22端口添加到防火墙外

关闭虚拟机,右键点击设置->网络,进行如下配置,主机ip填写windows下虚拟机网卡的ip,子ip填写CentOS里面enp0s3网卡的ip地址,端口填写22

​     

启动虚拟机,打开Git  Bash输入命令,发现可以连接进去虚拟机:

ssh root@192.168.56.1 # ssh root@虚拟网卡ip地址


6.构建CentOS虚拟机局域网

点击管理->主机网络管理器,新建2个和前面的虚拟网卡统一网段的ip网卡

把之前配置好的虚拟机,右键选择“克隆”

克隆完成后,我们发现多出来了两个新的虚拟机

  

  点击“管理”->"全局设定"->"网络"->新建一个网段为“10.0.3.0/24”的网段,配置如下图

好了,这里我们需要分别设置3个虚拟机的网络,打开主机 Master的设置-网络,网卡1和网卡2配置如下: 

​   

Node1的网卡1、网卡2配置:

 ​ 

Node2的网卡1、网卡2配置:

​   

 分别开启3台虚拟机,输入”ifconfig“查询到3个ip地址

 

  根据对应的ip地址重新填写各虚拟机网卡1的”端口转发“规则

最后利用git bash 用ssh命令登陆3台虚拟机,然后两两相互ping,如果能ping通,证明局域网CentOS环境已经搭建完成,我们正式进入k8s+docker的环境搭建


7. Master主节点配置kubernetes+docker

目前我们的3台虚拟机如下:

  • Master主节点(ip:10.0.3.4)
  • Node1子节点(ip:10.0.3.5)
  • Node2子节点(ip:10.0.3.6)

输入以下命令关闭防火墙:

setenforce 0systemctl stop firewalld & systemctl disable firewalldsed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinuxswapoff -afirewall-cmd --reload

yum安装k8s和etcd:

yum -y install etcd kubernetes

 

修改配置如下,保存退出

 

sudo vi /etc/etcd/etcd.conf

 

 

#[Member] 
#ETCD_CORS="" 
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" 
#ETCD_WAL_DIR="" 
#ETCD_LISTEN_PEER_URLS="http://localhost:2380" 
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" 
#ETCD_MAX_SNAPSHOTS="5" 
#ETCD_MAX_WALS="5" 
ETCD_NAME=default 
#ETCD_SNAPSHOT_COUNT="100000" 
#ETCD_HEARTBEAT_INTERVAL="100" 
#ETCD_ELECTION_TIMEOUT="1000" 
#ETCD_QUOTA_BACKEND_BYTES="0" 
#ETCD_MAX_REQUEST_BYTES="1572864" 
#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s" 
#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s" 
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s" 
# 
#[Clustering] 
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" 
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" 
#ETCD_DISCOVERY="" 
#ETCD_DISCOVERY_FALLBACK="proxy" 
#ETCD_DISCOVERY_PROXY="" 
#ETCD_DISCOVERY_SRV="" 
#ETCD_INITIAL_CLUSTER="default=http://localhost:2380" 
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" 
#ETCD_INITIAL_CLUSTER_STATE="new" 
#ETCD_STRICT_RECONFIG_CHECK="true" 
#ETCD_ENABLE_V2="true" 
# 
#[Proxy] 
#ETCD_PROXY="off" 
#ETCD_PROXY_FAILURE_WAIT="5000" 
#ETCD_PROXY_REFRESH_INTERVAL="30000" 
#ETCD_PROXY_DIAL_TIMEOUT="1000" 
#ETCD_PROXY_WRITE_TIMEOUT="5000" 
#ETCD_PROXY_READ_TIMEOUT="0" 
# 
#[Security] 
#ETCD_CERT_FILE="" 
#ETCD_KEY_FILE="" 
#ETCD_CLIENT_CERT_AUTH="false" 
#ETCD_TRUSTED_CA_FILE="" 
#ETCD_AUTO_TLS="false" 
#ETCD_PEER_CERT_FILE="" 
#ETCD_PEER_KEY_FILE="" 
#ETCD_PEER_CLIENT_CERT_AUTH="false" 
#ETCD_PEER_TRUSTED_CA_FILE="" 
#ETCD_PEER_AUTO_TLS="false" 
# 
#[Logging] 
#ETCD_DEBUG="false" 
#ETCD_LOG_PACKAGE_LEVELS="" 
#ETCD_LOG_OUTPUT="default" 
# 
#[Unsafe] 
#ETCD_FORCE_NEW_CLUSTER="false" 
# 
#[Version] 
#ETCD_VERSION="false" 
#ETCD_AUTO_COMPACTION_RETENTION="0" 
# 
#[Profiling] 
#ETCD_ENABLE_PPROF="false" 
#ETCD_METRICS="basic" 
# 
#[Auth] 
#ETCD_AUTH_TOKEN="simple"

 

修改配置如下,保存退出
sudo vi /etc/kubernetes/apiserver

### 
# kubernetes system config 
# 
# The following values are used to configure the kube-apiserver 
# # The address on the local server to listen to. 
KUBE_API_ADDRESS="--address=0.0.0.0" # The port on the local server to listen on. 
KUBE_API_PORT="--port=8080" # Port minions listen on 
KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster 
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379" # Address range to use for services 
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # default admission control policies 
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,L
imitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" 
 
# Add your own! 
KUBE_API_ARGS="" 
  • 输入命令:
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do 
systemctl restart $SERVICES 
systemctl enable $SERVICES 
systemctl status $SERVICES 
done 

  • 10.0.2.7换成自己主机节点虚拟机的ip

 

etcdctl -C http://10.0.3.4:2379 set /atomic.io/network/config '{
"Network":"10.1.0.0/16"}'

 


8. Node子节点配置kubernetes+docker

setenforce 0systemctl stop firewalld & systemctl disable firewalld sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinuxswapoff -afirewall-cmd --reload

#安装k8s

yum -y install flannel kubernetes
sudo vi /etc/kubernetes/config

    修改配置如下,保存退出 , 这里填写的ip是主节点的ip,不是自己的ip!

KUBE_MASTER="--master=http://10.0.3.4:8080" 
KUBE_ETCD_SERVERS="--etcd_servers=http://10.0.3.4:2379"
sudo vi /etc/kubernetes/kubelet

   修改配置如下,保存退出 ,

KUBELET_ADDRESS="--address=0.0.0.0" # The port for the info server to serve on 
KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname 
KUBELET_HOSTNAME="--hostname-override=10.0.3.6" # location of the api-server 
KUBELET_API_SERVER="--api-servers=http://10.0.3.4:8080" # pod infrastructure container 
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.
com/rhel7/pod-infrastructure:latest" 
 
# Add your own! 
KUBELET_ARGS=""

 输入命令

ip link delete docker0  
sudo vi /etc/sysconfig/flanneld

   修改配置如下,保存退出 ,

# Flanneld configuration options # etcd url location. Point this to the server where etcd runs 
FLANNEL_ETCD_ENDPOINTS="http://10.0.3.4:2379" # etcd config key. This is the configuration key that flannel queries 
# For address range assignment 
FLANNEL_ETCD_PREFIX="/atomic.io/network" # Any additional options that you want to pass 
#FLANNEL_OPTIONS=""

   输入命令:

for SERVICES in flanneld kube-proxy kubelet docker; do 
systemctl restart $SERVICES 
systemctl enable $SERVICES 
systemctl status $SERVICES 
done

最后一步,在主机节点(10.0.3.4)输入命令:

kubectl get nodes

大功告成!如果这篇文章可以帮到你,就资助下小弟吧

​                 

附录

三篇参考博客:

  • vituralbox虚拟机安装及配置(一、二):https://www.jianshu.com/p/78a5afd0c597
  • vituralbox搭建局域网虚拟机:https://jingyan.baidu.com/article/22a299b5d5989d9e19376ab7.html
  • Kubernetes+docker集群搭建博客:https://blog.csdn.net/real_myth/article/details/78719244
  • CentOS minimal刚完成安装无法联网:https://www.cnblogs.com/syscn/p/9802924.html
  • CentOS 开放22端口:https://www.cnblogs.com/xxx91hx/p/4374289.html

 

posted @ 2019-03-19 17:27 luyanjie 阅读(...) 评论(...) 编辑 收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用阿里云对象存储OSS收藏老婆新垣结衣日常照

目录阿里云OSS官方文档开通阿里云OSS服务入门使用java代码上传文件至OSS1、准备工作:创建阿里云OSS许可证(获取对Api的访问权限)选择继续使用 AccessKey创建AccessKey创建成功springBoot整合OSS依赖配置文件 application.yaml常量工具类OssControllerOssService效果…

当用户流失比较明显后, 如何提升活跃度? push notification 是一个有效的方式吗?...

当用户流失比较明显后, 如何提升活跃度? push notification 是一个有效的方式吗?添加评论 分享按票数排序10 个回答赞同反对,不会显示你的姓名Linda Jiang,友盟商务副总裁17 票,来自 LaneYu、程希冀、邹雪梅…

无法生成部件汇总表_RFID在汽车零部件企业仓储物流中的应用

随着物流行业的快速发展,RFID技术也逐渐得到了广泛应用。借助RFID技术,能在一定程度上切实促进数据和信息之间的快速传递,与此同时,这种传递方式属于非接触性的。现在RFID技术在不同领域得到了广泛应用,例如供应链管理,公交卡等.特别在近些年来,随着物流行业快速发展,RFID技术在…

CentOS7 源码编译安装NodeJS 最新版本Shell脚本

1,环境: 操作系统 CentOS Linux release 7.6.1810 (Core) 服务器环境 “腾讯云”服务器 cat /etc/centos-release # 查看centos系统版本 Node.js源码包下载地址:https://nodejs.org/dist/ 这里我们选择“Node.js v9.9.0” 执行如…

EasyExcel入门使用

目录标题官网github地址中文文档简单读简单写说明官网github地址 地址 中文文档 中文文档 简单读 import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data;import java.util.Date;/*** Created with I…

git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...

github地址:https://github.com/jinxuanzheng01/xdk-clicli工具是什么?在正文之前先大致描述下什么是cli工具,cli工具英文名command-line interface,也就是命令行交互接口,比较典型的几个case例如,create-react-app&am…

Nginx 502 Bad Gateway 错误的原因及解决方法

2019独角兽企业重金招聘Python工程师标准>>> 刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作。 然后网上寻找了下答案, 把一些原因及解决方法汇总一下,以防生产环境下…

easyExcel实现导入数据库

目录标题需求easyExcel Maven 依赖过程效果需求 我们需要将excel的数据导入至数据库中。 easyExcel Maven 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dep…

CentOS7 shell脚本安装jdk

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 下载 Java SE Development Kit 8u152&#xff0c;文件名&#xff1a;jdk-8u152-linux-x64.rpm&#xff0c;下载地址&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/ja…

如何解决在使用ElementUI时发现有些控件是英文的

如下图 解决 我们需要在入口文件 main.js 中将 ElementUI 的默认语言改为中文。 import locale from element-ui/lib/locale/lang/en // lang i18n 英文 import zhLocale from element-ui/lib/locale/lang/zh-CN // 中文// 选择elementUi 默认语言为中文 Vue.use(ElementUI, …

CentOS7 源码编译安装Python3 shell脚本

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2&#xff0c;Linux的Python3安装后即集成了pip&#xff0c;无需重新独立安装pip&#xff0c;执行以下命令完成python3和pip3的安装 yum groupinstall -y "Development tools" # 安…

ElementUI+Java实现搜索提示列表

效果 实现流程 首先我们需要在后端获取数据&#xff0c;我们可以根据name属性去模糊查询&#xff0c;返回Map类型的列表 然后将它返回给前端。 controller ApiOperation("根据关键字查询讲师名列表")GetMapping("list/name/{key}")public ResultVo sele…

CentOS7 搭建Pulsar 消息队列环境,CentOS(Linux)部署Pulsar,亲测成功,以及Python操作Pulsar实例驱动

在 最佳开源数据库与数据分析平台奖 中&#xff0c;之前曾连续两年入选的 Kafka 意外滑铁卢落选&#xff0c;取而代之的是新兴项目 Pulsar&#xff0c;Bossie Awards中对 Pulsar 点评如下&#xff1a;“Pulsar 旨在取代 Apache Kafka 多年的主宰地位。Pulsar在很多情况下提供了…

SpringSecurity +Jwt 实现权限管理

目录标题原理架构图demo的项目结构JwtTokenUtilRestAuthenticationEntryPoint 和 RestfulAccessDeniedHandlerMyUserDetailsServiceJwtAuthenticationTokenFilterSecurityConfigControllerPostman 测试为了方便&#xff0c;未采用是从数据库读取的方式。工具类都是别人那偷的&a…

FreeMarker_模板引擎_代码自动生成器_源码下载

首先我们先来认识一下Freemarker 1.what is the FreeMarker? 你可以到freemarker的官网上去&#xff0c;那里有很详细的介绍&#xff1a;http://freemarker.org/ 这里大概说一下&#xff1a;FreeMarker是一个用Java语言编写的模板引擎&#xff0c;它基于模板来生成文本输出。 …

CentOS7 搭建Kafka消息队列环境,以及Python3操作Kafka Demo

Kafka适合什么样的场景? 它可以用于两大类别的应用: 构造实时流数据管道&#xff0c;它可以在系统或应用之间可靠地获取数据。 (相当于message queue)构建实时流式应用程序&#xff0c;对这些流数据进行转换或者影响。 (就是流处理&#xff0c;通过kafka stream topic和topi…

hive序列生成_常见的序列化框架及Protobuf原理

享学课堂作者&#xff1a;逐梦々少年转载请声明出处&#xff01;上次我们详细的学习了Java中的序列化机制&#xff0c;但是我们日常开发过程中&#xff0c;因为java的序列化机制的压缩效率问题&#xff0c;以及序列化大小带来的传输的效率问题&#xff0c;一般很少会使用原生的…

decode语句不能再嵌套_自学C++基础教程【流程控制语句】(for、while 、do while 语句 )...

for语句for语句是C语言所提供的一种功能广泛的循环语句。下图为for语句的标准形式&#xff1a;表达式1&#xff1a;通常用于给循环变量赋初值&#xff0c;一般是赋值表达式。表达式2&#xff1a;通常用于设立循环条件&#xff0c;一般为关系表达式或逻辑表达式。表达式3&#x…

CentOS 7 利用Docker搭建禅道系统

1&#xff0c;系统环境 a&#xff0c;操作系统 CentOS Linux release 7.6.1810 (Core) 64位 b&#xff0c;确保Docker环境已经安装&#xff0c;具体教程请看 CentOS 安装docker 禅道系统一键安装说明文档&#xff1a;http://www.zentao.net/book/zentaopmshelp/90.html …

centos7 docker删除端口映射_centos7安装docker,结合docker安装mysql,学习简单使用

需要快速安装centos7的可以结合上一遍文章vagrant结合virtualbox让你直接在cmd窗口操作linux系统centos7地址&#xff1a;https://www.toutiao.com/i6858180977164812811/?group_id6858180977164812811Docker先说一下个人理解&#xff1a;docker其实就是一个工具&#xff0c;镜…