k8s搭建之初始環境準備-vagrant部署虛擬機(一)

k8s搭建之初始環境準備-虛擬機篇(一)

我相信很多搭建k8s 集羣的小夥伴最頭疼的一件事情就是,我沒有那麼多機器啊,別說高可用,就算是一個master一個node 用VM都煩的很,安裝的哪個圖形化就要點老半天,snapshot 快照要是沒有準備,環境搞得亂七八糟,那真的是心態爆炸,遇上重裝,拜拜了您勒。
如果有錢就去搞個阿里雲,什麼什麼雲的服務器,租個三個月好好搞(ps : 不要爲了省錢,像博主一樣,幾個賬號各自買esc,不同租戶網絡是隔離的,對於網絡互通的k8s來說比較不友好,搭建成功以後會各種服務訪問失敗,而且不同雲服務商的網絡也是不一樣的,有的可能有解決方案對於跨租戶VPC互通,有點就麻煩,不要得不償失了)
公司有服務器讓你用就另說了,物理機的話也是難受的一批,類似openstack的解決方案是最好的。
當然如果你什麼都沒有怎麼辦呢,本地虛擬機還是最好的學習手段。本文用vagrant + vistualbox,快速生成本地虛擬機環境,以及一些可能我自己遇到的坑。文章可能比較長,比較繁瑣,多比較幾篇文章,多操作,每個人都可以總結出自己的經驗來。

(1)下載安裝 vagrant

  1. 什麼是vagrant
    Vagrant是一款用於構建及配置虛擬開發環境的軟件,基於Ruby,主要以命令行的方式運行。主要使用Oracle的開源VirtualBox虛擬化系統,與Chef,Salt,Puppet等環境配置管理軟件搭配使用, 可以實行快速虛擬開發環境的構建。
    早期以VirtualBox爲對象,1.1以後的版本中開始對應VMware等虛擬化軟件,包括Amazon EC2之類服務器環境的對應。
    vagrant 是支持win10的 hyper-v 的,但是這次還沒試用,還是用的virtualBox 。
  2. 下載安裝vagrant
    官網下載地址 https://www.vagrantup.com/downloads.html 選自己的系統版本就行了
  3. 下載安裝virtualbox
    官網下載地址 https://www.virtualbox.org/wiki/Downloads 選自己的系統版本就行了
  4. ** 下載 虛擬機所需要的鏡像**
    這裏和平時用的虛擬機鏡像不太一樣,是box文件 例如CentOS-7-x86_64-Vagrant-1710_01.VirtualBox.box
    方式一
    官網下載地址 https://app.vagrantup.com/boxes/search
    下載方式,安裝好上面兩個東西以後,創建一個目錄,創建一個名字爲Vagrantfile 的文件,沒有後綴的,linux touch出來的那種,可以用gitbash ,touch一個文件, windows 不知道文本文檔另存爲能不能創建。
Vagrant.configure("2") do |config|
 config.vm.box = "centos/7"
end

上面這個centos/7就是你官網打開列表裏的名字,
在控制檯執行 **** ,就會自動從官網下載。

$ vagrant up

方法二 : 在這個網站 http://www.vagrantbox.es/
使用方式,在控制檯 一次敲入

 $ vagrant box add {title} {url}
 $ vagrant init {title}
 $ vagrant up

url 在網站copy就行
方法三:
centos 的官網有vagrant的鏡像,提前下載
地址:https://cloud.centos.org/centos/7/vagrant/x86_64/images/
版本比較齊,本博客用的 這個

CentOS-7-x86_64-Vagrant-1710_01.VirtualBox.box

下載完成後在你下載的文件目錄下執行

$ vagrant box add centos7 {你的鏡像名}

centos7 是自己起的名字

如果以上都順利完成那你就成功了一大半了。

(2)創建自己的虛擬機羣

  1. 新建一個目錄,並進入到這個目錄裏,創建 Vagrantfile(同上提到過的),輸入
Vagrant.require_version ">= 1.7.0"

def set_vbox(vb, config)
  vb.gui = false
  vb.memory = 1024
  vb.cpus = 1
end

Vagrant.configure("2") do |config|
  config.vm.provider "virtualbox"
  config.vm.box = "centos7"

  private_count = 11
  (1..6).each do |mid|
    name = (mid ==1 ) ? "k8s-m" : "k8s-n"
    id = (mid <= 3) ? mid : mid - 3
    config.vm.define "#{name}#{id}" do |n|
      n.vm.hostname = "#{name}#{id}"
      ip_addr = "192.16.35.#{private_count}"
      n.vm.network :private_network, ip: "#{ip_addr}", auto_config: true
      n.vm.provider :virtualbox do |vb, override|
        vb.name = "#{n.vm.hostname}"
        set_vbox(vb, override)
      end
      private_count += 1
    end
  end
end

1.vb.gui = false 關閉 虛擬機 gui,vb.memory = 1024 內存1g ,vb.cpus = 1 cpu1核
2. config.vm.provider "virtualbox" 我們用的是virtualbox,想用其他provider的可以自己試試 config.vm.box = "centos7" 這個名字就是我們自己 增加的 box 的別名
3. (1..6).each do |mid| 這裏只是創建6個,需要多個的可以自己改數字,下面關於hostname的設定,這裏是前三個 取名 k8s-m1..3 後面三個取名爲 k8s-n1..3 ,只是創建普通虛擬機羣的可以自己稍微改動,固定名字
在文件目錄下執行

vagrant up

正常情況下應該是直接創建完成,但是總有不測風雲。win10 裝過docker 的話,開啓了hyper-v ,需要關閉,可能會關閉失敗

錯誤Raw-mode is unavailable courtesy of Hyper-V.
(VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).
返回 代碼: E_FAIL (0x80004005)

打開這個官方工具網站,下載,並且在cmd 裏執行 DG_Readiness_Tool_v3.6.ps1 -Ddisable(具體文件要看你下載的版本,官網tab鍵快速鎖定)重啓就ok,https://www.microsoft.com/en-us/download/details.aspx?id=53337
參考解決方案地址: https://www.jianshu.com/p/2e3429d45aea

(3)連接我們的虛擬機

1.控制檯通過vagrant ssh 連接

vagrant ssh k8s-m1

可以從控制檯免密碼,k8s-m1默認登錄的用戶是vagrant 密碼vagrant,可以手動切換root,但是比較麻煩,點擊
《xshell 登陸vagrant》
看我另外一篇博客 《通過xshell 登陸vagrant 》,免密碼和用賬號密碼登陸的介紹。

2. 優雅的關機 vagrant halt

更多的命令網上找有很多,vagrant up 可以喚醒,還有備份等自己決定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章