目錄
成都創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)成都OPP膠袋等多個(gè)領(lǐng)域擁有多年的網(wǎng)站推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
Kubernetes 運(yùn)維之路 的開始當(dāng)然少不了集群環(huán)境的搭建,這篇文章記錄了我在一臺(tái)機(jī)器使用 VirtualBox + Ubuntu 16 搭建 Kubernetes 的整個(gè)過程,包括其中遇到的一些問題以及解決辦法。關(guān)于 Kubernetes
下面是一段來自維基百科的關(guān)于 Kubernetes 的解釋:
Kubernetes(常簡稱為 K8s)是用于自動(dòng)部署、擴(kuò)展和管理「容器化(containerized)應(yīng)用程序」的開源系統(tǒng)。該系統(tǒng)由 Google 設(shè)計(jì)并捐贈(zèng)給 Cloud Native Computing Foundation(今屬 Linux 基金會(huì))來使用。
它旨在提供“跨主機(jī)集群的自動(dòng)部署、擴(kuò)展以及運(yùn)行應(yīng)用程序容器的平臺(tái)”。它支持一系列容器工具,包括Docker等。
安裝 VirtualBox
下載 Ubuntu 16 系統(tǒng)鏡像
虛擬機(jī) x3
虛擬機(jī) IP
由于我們使用的是虛擬機(jī),我們會(huì)給每臺(tái)虛擬機(jī)配置網(wǎng)卡,讓每臺(tái)虛擬機(jī)都可以上網(wǎng)的,這里有兩種方式:使用 橋接網(wǎng)卡,每臺(tái)虛擬機(jī)的 IP 將會(huì)是宿主機(jī)網(wǎng)段的,支持虛擬機(jī)上網(wǎng) 使用 NAT 網(wǎng)絡(luò) + 端口轉(zhuǎn)發(fā),網(wǎng)段自行設(shè)置,支持虛擬機(jī)上網(wǎng)
大家可以使用其中任意一種方式給虛擬機(jī)配置網(wǎng)卡,從而讓虛擬機(jī)可以上網(wǎng)。
需要注意的是,在集群搭建完成后,集群中的每個(gè)節(jié)點(diǎn)的 IP 要求保持不變,否則節(jié)點(diǎn)需要重新加入。
簡單的方式就是讓虛擬機(jī)不關(guān)機(jī),而是進(jìn)入睡眠狀態(tài),下次只需喚醒即可。
> ifconfigenp0s3 Link encap:Ethernet HWaddr 08:00:27:6f:23:2a inet addr:10.0.2.4 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe6f:232a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3277016 errors:0 dropped:0 overruns:0 frame:0 TX packets:3385793 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1084480916 (1.0 GB) TX bytes:2079122979 (2.0 GB)
配置主機(jī)名
# /etc/hosts10.0.2.4 master10.0.2.5 node110.0.2.6 node2SSH 無密連接
在虛擬機(jī)運(yùn)行起來后,我們要做的第一件事就是要連通這三臺(tái)虛擬機(jī),即配置 SSH 無密連接。
ssh-keygen -t rsa -C 'k8scat@gmail.com' -f ~/.ssh/id_rsa -q -N ''
關(guān)于 ssh-keygen 的參數(shù)說明:-t rsa 指定加密算法為 RSA -C 用于提供一個(gè)備注,表明私鑰的生成者 -f ~/.ssh/id_rsa 指定私鑰生成的位置 -q -N '' 表示不對(duì)私鑰加密碼,以及使用靜默的方式
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 400 ~/.ssh/authorized_keys
# 在 master 節(jié)點(diǎn)上ssh root@node1Kubernetes 集群搭建
apt-get update -yapt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# INSTALL DOCKER ENGINEapt-get update -yapt-get install -y docker-ce docker-ce-cli containerd.io# Configure Docker to start on bootsystemctl enable docker.servicesystemctl enable containerd.service# Start Dockersystemctl start docker安裝 kubeadm、kubelet 和 kubectl
# 更新 apt 包索引并安裝使用 Kubernetes apt 倉庫所需要的包apt-get update -yapt-get install -y apt-transport-https ca-certificates curl# 下載 Google Cloud 公開簽名秘鑰# curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgcurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -# 添加 Kubernetes apt 倉庫# echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.listecho "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list# 更新 apt 包索引,安裝 kubelet、kubeadm 和 kubectl,并鎖定其版本apt-get update -yapt-get install -y kubelet kubeadm kubectlapt-mark hold kubelet kubeadm kubectl關(guān)閉 SWAP
#/dev/mapper/master--vg-swap_1 none swap sw 0 0預(yù)先下載鏡像
> kubeadm config images listk8s.gcr.io/kube-apiserver:v1.21.1k8s.gcr.io/kube-controller-manager:v1.21.1k8s.gcr.io/kube-scheduler:v1.21.1k8s.gcr.io/kube-proxy:v1.21.1k8s.gcr.io/pause:3.4.1k8s.gcr.io/etcd:3.4.13-0k8s.gcr.io/coredns/coredns:v1.8.0
k8s 的鏡像源對(duì)于國內(nèi)用戶是可望而不可即的,但我們可以先拉到國內(nèi)的鏡像倉或者可以使用的鏡像倉,比如阿里云的容器鏡像服務(wù) ACR 和 Docker 的官方鏡像倉 DockerHub。
FROM k8s.gcr.io/kube-apiserver:v1.21.0
然后在阿里云的容器鏡像服務(wù) ACR 中新建一個(gè)鏡像,并關(guān)聯(lián)這個(gè) GitHub 代碼倉,構(gòu)建出來的鏡像就是我們要的 k8s 鏡像,比如上面的 k8s.gcr.io/kube-apiserver:v1.21.1,但在使用的時(shí)候需要重新給鏡像打標(biāo)簽。
# Pull images from aliyun registrykubeadm config images list | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#registry.cn-shenzhen.aliyuncs.com/k8scat#g' -e 's#/coredns/coredns#/coredns#g' | sh -x# Tag imagesdocker images | grep k8scat | awk '{print "docker tag",$1":"$2,$1":"$2}' | sed -e 's#registry.cn-shenzhen.aliyuncs.com/k8scat#k8s.gcr.io#2' | sh -xdocker tag k8s.gcr.io/coredns:v1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0# Remove imagesdocker images | grep k8scat | awk '{print "docker rmi",$1":"$2}' | sh -x初始化 master 節(jié)點(diǎn)
scp master:/etc/kubernetes/admin.conf /etc/kubernetes/admin.confecho 'export KUBECONFIG="/etc/kubernetes/admin.conf"' >> /etc/profilesource /etc/profile安裝網(wǎng)絡(luò)插件
# curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave-net.yaml# With IPALLOC_RANGEkubectl apply -f https://gist.githubusercontent.com/k8scat/c6a1aa5a1bdcb8c220368dd2db69bedf/raw/da1410eea6771c56e93f191df82206be8e722112/k8s-weave-net.yaml
到此這篇關(guān)于VirtualBox+Ubuntu16搭建Kubernetes集群的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VirtualBox+Ubuntu16搭建Kubernetes集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
本文題目:VirtualBox+Ubuntu16搭建Kubernetes集群的實(shí)現(xiàn)
瀏覽路徑:http://aaarwkj.com/article0/gioo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站內(nèi)鏈、外貿(mào)建站、移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)