雖然官方已有乙個vagrant開發環境可用於mac,但是有 幾個問題:
使用了並不是必須的salt來裝k8s,沒有必要
國內使用的話需要配置翻牆**,我本人用的不是vpn而是proxy,比較麻煩些
部分資訊稍老,且更新比較慢,而k8s的開發迭代速度很快
因此,我準備按照下述方法構建mac下開發環境:
使用官方ubuntu bare-metal cluster的安裝方式,完成k8s集群軟體安裝
為了節省資源及簡化介紹,下文中只用兩台vm,功能分別是:
k8s-master:k8s集群master節點,是個standalone的模式,即:master和node都裝在一台vm上
假定環境已安裝好vagrant(1.6.2以上)和virtualbox(4.3),然後需要做三件事:
vagrant box add ubuntu-14.04-amd64
建立乙個目錄(本文假定路徑為~/k8s/deploy/),也即vagrantfile所在目錄
mkdir -p ~/k8s/deploy
cd ~/k8s/deploy
編寫vagrantfile檔案:在deploy目錄新建乙個檔案vagrantfile,寫入下述內容:
vagrant.configure(2) do |config|
config.vm.define "k8s-ctl"
do |c|
c.vm.box = "ubuntu-14.04-amd64"
c.vm.network "public_network"
end config.vm.define "k8s-master"
do |c|
c.vm.box = "ubuntu-14.04-amd64"
c.vm.network "public_network"
endend
然後就可以通過vagrant up啟動兩台vm,然後可以ssh進入k8s-ctl:
vagrant up
vagrant ssh k8s-ctl
這部分主要參考官方ubuntu安裝guide,但基於使用場景不同做了一些改動。
主要如下步驟:
cd ~/k8s/deploy
wget
/kubernetes/releases
/download/v1.0.6/kubernetes.tar.gz -o - | tar -zxf -
然後,我們就可以進入k8s-ctl,開始進行部署前的準備工作:
vagrant ssh k8s-ctl
export http_proxy=http://:export https_proxy=https://:cd /vagrant/kubernetes/cluster/ubuntu
修改./build.sh,在檔案頭新增:
flannel_version=0.5.3
etcd_version=2.2.0
kube_version=1.0.6
然後執行 `./build.sh`,正常結束後,當前路徑下會多出乙個`binaries/`目錄,儲存的是k8s多個二進位制執行檔案。
修改部署配置
config-default.s**件頭部新增如下內容:
nodes="[email protected]"
role="ai"
num_minions=1
注:這裡`nodes`按照自己環境的情況修改
開始部署
export kubernetes_provider=ubuntu
cd /vagrant/kubernetes/cluster/
./kube-up.sh
注1:如果提示需要sshkey,則`ssh-keygen && ssh-add`
注2:如果validate不成功,可能是因為使用的box映象缺少一些需要的軟體,ssh進入k8s-master vm進行安裝,如docker、pgrep、bridge-utils、apt-transport-https。
注3:部署過程**錯,可以使用`./kube-down.sh`進行回退
注4:部署過程如果出現網路錯誤,注意排查:每個node上/etc/hosts都已經配置了host-name,以及取消了proxy設定: unset http_proxy, https_proxy
驗證部署結果
通過kubectl命令可以check集群狀態,以及訪問k8s master的api-server
vagrant@vagrant:/vagrant/kubernetes/cluster$ ./kubectl.sh get nodes
name labels status
192.168.0.108 kubernetes.io/hostname=192.168.0.108 ready
vagrant@vagrant:/vagrant/kubernetes/cluster$ curl 192.168.0.108:8080/api
export kubernetes_provider=ubuntu
export path=$path:/vagrant/kubernetes/cluster/ubuntu/binaries
alias kc="kubectl"
可以在集群上安裝k8s的addons,比如dns、kubeui、kubedash,可以通過下述命令部署自帶的dns
cd cluster/ubuntu
./deployaddons.sh
國內如果沒用vpn,需要在k8s-master(如果集群,則在所有節點)上配置docker**,否則無法pull映象,ubuntu下:
ssh免賬號登入的方法:kube-up過程需要多次ssh登入到各個nodes執行操作,以及scp傳送檔案,可以配置金鑰對進行免賬號登入:
# 在master節點生成秘鑰檔案
ssh-keygen -t dsa -p '' -f ~/.ssh/id_dsa
# 將秘鑰檔案拷貝到所有節點
ssh-copy-id -i ~/.ssh/id_dsa.pub vagrant@
本文**中文社群-
使用vagrant部署k8s ubuntu集群
k8s集群部署 docker部署k8s安裝篇
1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...
單機部署k8s
安裝docker ce systemctl enable docker systemctl start docker 修改cgroup driver 為systemd 預設為cgroups echo kubelet kubeadm extra args cgroup driver systemd e...
k8s kubernates 如何部署
本文件最初是基於kubenetes1.6版本編寫的,對於kuberentes1.8及以上版本同樣適用,只是個別位置有稍許變動,變動的地方我將特別註明版本要求。本系列文件介紹使用二進位制部署kubernetes集群的所有步驟,而不是使用kubeadm等自動化方式來部署集群,同時開啟了集群的tls安全認...