『中级篇』Vagrant在本地搭建多节点K8S集群(65)-程序员宅基地

技术标签: git  运维  shell  

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』Vagrant在本地搭建多节点K8S集群(65)

这次说说service,service和网络有非常密切的 关系,为了能让大家很好的理解和直观的展示,重新搭建一个环境,之前用minikube搭建是单节点的环境,但是不够直观,这次coreos搭建一个多节点的。源码:github.com/limingios/d…
github.com/limingios/d…

Tectonic

  • Tectonic介绍,注册后可以免费试用节点数小于10个的

coreos.com/tectonic/do…


  • 账号注册




  • 垃圾邮件里面有




  • 注册成功

PS:遗憾的是:Tectonic已经sandbox下架了,我在网上找了一份直接传到github了,自己下载吧。直接通过vagantfile的方式搭建。



  • 通过vagrantfile安装

具体vagrant的安装看我(六)和(七)两节。关于mac和window下的安装。
整个安装过程用了40分钟。

vagrant up
复制代码

出现下面的错误,你需要翻墙了兄弟。
Installing the 'vagrant-ignition' plugin. This can take a few minutes...
Vagrant failed to load a configured plugin source. This can be caused
by a variety of issues including: transient connectivity issues, proxy
filtering rejecting access to a configured plugin source, or a configured
plugin source not responding correctly. Please review the error message
below to help resolve the issue:


开启翻墙后


因为目前Tectonic 已经没有sandbox 保持通用,我还是用传统的方式安装吧。

shell vagrant的方式安装k8s集群

源码:github.com/limingios/d…

  • 下载源码

github.com/limingios/d…


  • 本地开发机

所有的部署工作都是在开发机(dev)上进行的。我已经准备好了在源码中提供。


  • 虚机vagrantfile已经编译好
Vagrant.configure(2) do |config|

  # 设置dev虚机环境(下面还要写dev.vm,好扯淡)
  config.vm.define "dev" do |dev|

    # 设置虚拟机的Box
    dev.vm.box = "centos7"

    # 设置虚拟机的主机名
    dev.vm.hostname = "dev"
    
    # 设置虚拟机的IP
    dev.vm.network "private_network", ip: "192.168.0.2"

    # VirtaulBox相关配置
    dev.vm.provider "virtualbox" do |vb|

        # 设置虚拟机的内存大小
        vb.memory = 512

        # 设置虚拟机的CPU个数
        vb.cpus = 1
    end

    # 挂载失败了,mount: unknown filesystem type 'vboxsf'
    # config.vm.synced_folder ".", "/home/vagrant/deployk8s"
    # 使用默认挂载

    # 使用shell脚本进行软件安装和配置
    dev.vm.provision "shell", path: "dev.sh"
  end

  # ssh配置
  config.ssh.username = "vagrant"
  config.ssh.private_key_path = "~/.vagrant.d/insecure_private_key"
  config.ssh.insert_key = false

end
复制代码

  • 把Vagrantfile中的box名与box镜像关联起来
# vagrant box add centos7 path_to_your_centos7
# 例如:
vagrant box add centos7 centos7.box
复制代码

  • 启动开发机(dev)

以后就使用dev来指代开发机了。
图方便我已经把不安全的公钥添加到集群机器的/root/.ssh/authorized_keys中了,
为了让root能从dev远程登录到集群机器,需要把insecure_private_key弄到dev的~/.ssh/id_rsa中,可以scp,如果使用的是xshell那就用xshell自带的sftp

vagrant up dev
复制代码

  • 启动集群 要安装6个机器 老铁你准备好空间
cd vagrant-cluster
vagrant up master1
vagrant up master2
vagrant up master3
vagrant up node1
vagrant up node2
vagrant up node3
# 可以直接vagrant up来启动所有机器
复制代码
  • 进入dev的虚拟主机
vagrant ssh dev
#这一步的目的是把压缩包直接放在vagrant共享目录下解压,
#结果在最后报软连接错误,直接放入虚拟机的自身目录就不会爆这个错误这个很重要
cp -r deployk8s-master deployk8s
cd deployk8s
复制代码
  • 进入dev的虚拟主机通过SecureCRT
  1. 找到insecure_private_key



  2. 输入192.168.0.2 选择红色框









  • 需要把insecure_private_key弄到dev的~/.ssh/id_rsa中,借助git bash
scp -i ~/.vagrant.d/insecure_private_key \
~/.vagrant.d/insecure_private_key \
[email protected]:~/.ssh/id_rsa
#这个id_rsa的权限是644,需要改为600,在dev机中执行:
chmod 600 ~/.ssh/id_rsa
复制代码

  • 进入dev的虚拟主机
vagrant ssh dev
#这一步的目的是把压缩包直接放在vagrant共享目录下解压,
#结果在最后报软连接错误,直接放入虚拟机的自身目录就不会爆这个错误这个很重要
cp -r deployk8s-master deployk8s
cd deployk8s
复制代码
  • 进入dev的虚拟主机
  • 如果可以翻墙,用下面的脚本。如果翻墙不了,我已经下载到源码里面了 进入vagrant里面下载。
# 下载cfssl
curl -O https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
curl -O https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
curl -O https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

# 下载keepalived v2.0.6
curl -O http://www.keepalived.org/software/keepalived-2.0.6.tar.gz

# 下载etcd v3.3.8
curl -O https://github.com/coreos/etcd/releases/download/v3.3.8/etcd-v3.3.8-linux-amd64.tar.gz

# 下载flannel v0.10.0
curl -O https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz

# 下载kubernetes v1.11.0
curl -O https://dl.k8s.io/v1.11.0/kubernetes-server-linux-amd64.tar.gz
最后就开始执行脚本进行部署吧。
复制代码

  • 部署集群
./deployk8s.sh 2>&1 | tee deployk8s.log
复制代码



本来想吧几个文件上传到github让懒人老铁不直接下载了,确实上传太慢了我放弃了我直接大家网址,他们通过迅雷下载也很快的。


image.png
https://vagrantcloud.com/centos/boxes/7/versions/1804.02/providers/virtualbox.box
https://dl.k8s.io/v1.11.0/kubernetes-server-linux-amd64.tar.gz
https://github.com/coreos/etcd/releases/download/v3.3.8/etcd-v3.3.8-linux-amd64.tar.gz
https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz
https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
http://www.keepalived.org/software/keepalived-2.0.6.tar.gz
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
#下载后还放到No.10的deployk8s-master下就可以了。
复制代码

有老铁问我,dev,master,node,他们之间的关系dev 就是锤子,node 就是房子,master就是打开房子的大门。用锤子打造了一个建筑,但是锤子不属于建筑物,所以ping 什么一系列的操作都ping不通pod的。

PS:这种方式感觉很受用,感谢xujintao 的技术指导和他的github的思路引导成功部署的github.com/xujintao/de…的一键部署!


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34248023/article/details/88026844

智能推荐

linux下vim配置solarized配色_solarized gvim-程序员宅基地

文章浏览阅读2.7k次。1 让 gvim 正常工作  VIM 是一个非常强大的编辑器,可惜的是,无论是 Windows 还是 Linux,gvim 都存在一些小故障,令第一眼看到它的初学者感到非常不愉快。为了不让更多的初学者在第一次接触 gvim 时被它吓跑,我在这份教程中首先解决 gvim 令人感到不快的一些小问题,希望能让更多的用户平滑地过渡到 gvim 的环境中来。   VIM 的安装很简单,Windows 下只要_solarized gvim

react native 震动 Vibration 使用详解_react native震动-程序员宅基地

文章浏览阅读5.1k次。Vibration.vibrate()用于控制设备震动。vibrate(pattern, repeat) pattern:参数为一个不定长的数组。在Andriod上,数组第一个元素表示开始震动前的等待时间,然后是震动持续时长和等待时长的交替,例如[0, 500, 1000, 500]表示立刻开始震动500ms,然后等待1000ms,再震动500ms;但在iOS上震动时长是固定的,所以从数组第二_react native震动

分卷压缩与分卷解压_分段压缩和解压-程序员宅基地

分卷压缩与分卷解压是一种用于文件压缩和解压的技术。该技术可以将大文件分成多个较小的卷,并且可以分别对每个卷进行压缩和解压缩操作。这种技术在处理大型文件时非常有用,可以提高文件传输的效率和方便性。

【前端资源分享】推荐收藏的前端学习资源_前端分享内容-程序员宅基地

文章浏览阅读545次,点赞7次,收藏12次。今天分享一些个人收藏的前端学习资源,按一下几个维度简单划分了下,有 3D、框架、构建工具等等。由于这些地址都是我个人收藏的,所以带有一些强烈的主观意识,还有很多优秀的网址没有收录进来,会不断更新的,欢迎大家点赞,收藏。_前端分享内容

android studioapp成功图,AndroidStudio多渠道打包当你完成了一个app项目,后面发现不同客户需要定制不同ui,或者功能,这个时候怎么办? 拿ui来说,第一种方法,不同客户替...-程序员宅基地

文章浏览阅读223次。最近不断有朋友向我咨询AndroidStudio多渠道的打包方法,今天整理一下之前积累的打包套路,写一篇文章,手把手的教给大家。 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值:上面的value值Channel_ID就是..._android studio多渠道res

python 使用HTMLReport生成测试报告-程序员宅基地

文章浏览阅读8.3k次。一、安装: 在线安装:使用pip命令安装HTMLReport 命令:pip install HTMLReport 安装好的位置在:Python安装路径下的Lib/site-packages下 离线安装:直接将下载好的HTMLR..._htmlreport

随便推点

Flink四大基石和流处理,批处理_flink stage类型-程序员宅基地

文章浏览阅读923次。之前介绍了FLink的一些基本原理,架构部署,那么Flink中的四大基石是什么?我们来研究研究这玩意我们了解到FLink中有四大基石:Checkpoint stage Time Window这四部分那么首先我们来看看Checkpoint机制是Flink中最重要的一个特性,FLink基于chandy_Lamport算法实现了一个分布式的一致性的快照,从而提供了一致性的语义,提供了一致性的语义之后,Flink为了让用户编程更加轻松,更加容易的去管理状态,还提供了一套stage API (也就是状态管理,状_flink stage类型

哈工大硕士生用 Python 实现了 11 种经典数据降维算法,源代码库已开放_std_broken = broken.std(axis=0)-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏86次。导语:适合机器学习初学者和刚入坑数据挖掘的小伙伴雷锋网 AI 开发者按:网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码。这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA、LDA、MDS、LLE、TSNE 等,并附有相关资料、展示效果;非常适合机器学习初学者和刚刚入坑数据挖掘的小伙伴。为什么要进行数据降维?..._std_broken = broken.std(axis=0)

建议收藏 | 数据化、信息化、数字化、智能化到底都是指什么?彼此有什么联系?_数据化智能化的象征代表-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏31次。随着新技术、新产业、新业态、新模式的不断出现,各行各业的企业都在寻找新的突破口进行转型升级,“数据化、信息化、数字化、智能化”愈来愈频繁地出现在大众视野中,关于它们概念和解说也是层出不穷、百花齐放,到底它们之间有什么区别呢? Runwise整理了一些关于数据化、信息化、数字化、智能化的相关定义,结合组织定义与行业发展趋势,对四者之间的联系与区别进行解析,便于大家更好理解之间的关系。01 关于数据化、信息化、数字化、智能化的概念数据化1.数据化的定义数据代表着对某一件事物的描述,通过记录、分析、重组数_数据化智能化的象征代表

pdf转word用python轻松搞定_使用Python将PDF转化为word-程序员宅基地

文章浏览阅读1.6k次。60行Python代码,实现多线程PDF转Word分解任务把PDF转为Word,分几步?两步,第一步读取PDF文件,第二步写入Word文件。是的,就是这么简单,借助Python第三方包,可以轻松实现上面两个过程,我们要用到pdfminer3k和python-docx这两个包读取PDFfrom pdfminer.pdfinterp import PDFResourceManagerfrom pdfm..._python写pdf与word互转代码

fmea手册_新版FMEA打分怎么破?(详细收录手册标准对照表...-程序员宅基地

文章浏览阅读5.6k次。新版FMEA终于正式发布了!关于新版FMEA正式版与草稿版的差异,后续黄老师将会每周撰写新文来给大家做解读及分享,敬请持续关注公众号(首页菜单的历史文章中有FMEA合集,大家可随时点击阅读旧文)。为了方便部分已经懂了七步法的学员可以直接进行新版FMEA的使用,本篇特别将新版FMEA手册中的评分表整理出来,方便参考使用。本篇文章建议收藏,后续可持续做为工具书随时参考使用。关于打分说起FMEA,打分是..._fmea打分标准对照表

Fantastical 2 for Mac(日历管理软件) v2.5免激活版-程序员宅基地

文章浏览阅读3.3k次。今天小编为您带来Fantastical 2 Mac一款易于使用的日历管理软件,Fantastical 2 Mac版采用了全新的设计风格,和Yosemite系统十分贴合,并且提供了「光」和“黑暗”两种配色模式,可以切换左栏的颜色。右侧的布局和系统原生日历十分相像,而在左侧则显示了该月日期及行程安排,并且还整合了系统原生的 「提醒事项」 。Fantastical 2Mac破解版使用说明下载完成...

推荐文章

热门文章

相关标签