K8S入門(一) 環(huán)境準(zhǔn)備

目的

  • 構(gòu)建一個(gè)虛擬機(jī),為后續(xù)搭建環(huán)境提供Node模板
  • 盡量避免對(duì)科學(xué)上網(wǎng)的依賴

依賴

  • VirtualBox 5.2.16
  • Ubuntu Sever 16.04 x64
  • Docker 18.06.0-ce
  • kubernetes v1.11.1

準(zhǔn)備docker鏡像倉(cāng)庫(kù)

提前準(zhǔn)備好kube鏡像,防止搭建環(huán)境時(shí)下載不到鏡像而失敗

  • k8s.gcr.io鏡像列表

注意:鏡像版本與Kuberneters版本保持一致

"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"

阿里云平臺(tái)上準(zhǔn)備一臺(tái)按量付費(fèi)的海外云服務(wù)器(用完就可以釋放),并在此服務(wù)器上下載上述docker鏡像然后推送到自己的容器鏡像服務(wù)中,參考阿里云容器鏡像服務(wù)

  • 拉取鏡像

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)
for image in ${images[@]}
do
    docker pull k8s.gcr.io/$image
done
  • 推送鏡像

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)

mirror=your_registry_server
ns=your_registry_namespace

echo "[[mirror=$mirror, namespace=$ns"

for image in ${images[@]}
do
    echo "[[push image - $image"
    # tag gcr image
    docker tag k8s.gcr.io/$image $mirror/$ns/$image
    # push gcr image
    docker push $mirror/$ns/$image
done
  • 其他選擇

可以將鏡像全部打包存儲(chǔ)在自己的硬盤上,需要的時(shí)候在解包到docker所在的機(jī)器上

# 打包
sudo docker save $image > $image.tar
tar zcvf images.tar.gz *.tar

# 下載到本地硬盤 
wget images.tar.gz

# 上傳到模板機(jī)器上再解包
upload images.tar.gz
sudo docker load -i $image.tar

# 如果需要,重新打標(biāo)簽
# sudo docker tag

構(gòu)建模板

制作一個(gè)模板虛擬機(jī),方便在搭建環(huán)境時(shí)直接根據(jù)此模板生成Node虛擬機(jī)

新建vbox虛擬機(jī)并安裝Ubuntu Server

無(wú)

安裝docker-ce

參考文檔

關(guān)閉交換分區(qū)

sudo swapoff -a

也可以在啟動(dòng)腳本(如/etc/init.d/rc.local)中,啟動(dòng)時(shí)自動(dòng)關(guān)閉

修改網(wǎng)絡(luò)配置

參考如下命令

sudo -s
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p

安裝Kubernetes

參考官方文檔,建議使用阿里云鏡像安裝

sudo -s
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubelet kubeadm kubectl

準(zhǔn)備docker鏡像

拉取前面所將的鏡像倉(cāng)庫(kù)中的docker鏡像并重新打標(biāo)簽

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)

mirror=your_registry_server
ns=your_registry_namespace

echo "[[mirror=$mirror, namespace=$ns"

for image in ${images[@]}
do
    echo "[[pull image - $image"
    docker pull $mirror/$ns/$image
    docker tag $mirror/$ns/$image k8s.gcr.io/$image
done

完成

接下來(lái)我們就用這個(gè)模板來(lái)創(chuàng)建kuberneters集群節(jié)點(diǎn)主機(jī),并搭建集群環(huán)境

我已準(zhǔn)備好的鏡像

registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-proxy-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-controller-manager-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-scheduler-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-apiserver-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kubernetes-dashboard-amd64:v1.8.3
registry.cn-hangzhou.aliyuncs.com/kuberneters/coredns:1.1.3
registry.cn-hangzhou.aliyuncs.com/kuberneters/etcd-amd64:3.2.18
registry.cn-hangzhou.aliyuncs.com/kuberneters/pause:3.1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容