k8s-1:Docker + kubernetes

百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1ZL07VO3ysXpyr5qMpMEHiw提取碼: aa86

本次搭建Docker + kubernetes前提條件是在VMware + CentOS 7 上面搭建的;

我們需要做一下的工作:

(1)安裝VMware ,運(yùn)行CentOS 7系統(tǒng)。

(2)本次是在同一個(gè)虛擬機(jī)上運(yùn)行,只搭建一個(gè)Master

? (3) 安裝docker + K8S

一、安裝VMware

官網(wǎng)地址:https://my.vmware.com/zh/web/vmware/downloads??(網(wǎng)上有很多自帶破解的下載,大家也可以找一下)

我這里下載的是VM15(安裝和新建虛擬機(jī)的步驟就跳過(guò)了,我也是百度的)

虛擬機(jī)配置:4核4G(也可以減小配置)

CentOs下載地址:https://www.centos.org/download/?

具體百度安裝VMware。

二、準(zhǔn)備工作

VMware啟動(dòng)后,設(shè)置登錄賬號(hào)為root ,密碼 (自己設(shè)置)

1、關(guān)閉防火墻,并且不啟動(dòng)防火墻

systemctl stop firewalld

systemctl disable firewalld

2、關(guān)閉swap

vi /etc/fstab

在行首加 #,注釋該行


3、設(shè)置主機(jī)名稱位master

hostnamectl set-hostname master

或者??

? ? 執(zhí)行? vi /etc/sysconfig/network

? ??HOSTNAME=master

4、重新啟動(dòng)虛擬機(jī)

二、安裝Docker

(1) 下載安裝

# step 1: 安裝必要的一些系統(tǒng)工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Step 2: 添加軟件源信息

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果失敗用下方的安裝

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 3: 更新并安裝 Docker-CE

sudo yum makecache fast

sudo yum -y install docker-ce

sudo service docker start

systemctl enable docker

systemctl start docker

查看docker版本:

docker -v

(2)配置docker加速器

加速器怎么配置就不說(shuō)了,這里是我的阿里云加速地址,大家可以自行替換,然后我們還需要指定下k8s的下載地址:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

??"registry-mirrors": ["https://bbw0jgk7.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

cat>>/etc/yum.repos.d/kubrenetes.repo<<EOF

[kubernetes]

name=Kubernetes Repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

EOF

(3)安裝:

yum install -y kubeadm??kubelet kubectl

(4)設(shè)置開機(jī)啟動(dòng)

systemctl start docker.service

systemctl enable docker.service

systemctl enable kubelet.service

(5)初始化k8s,先試一下,展示一下k8s的版本。

kubeadm init --pod-network-cidr=10.244.0.0/16

--service-cidr=10.96.0.0/12


初始化相應(yīng)的版本:

kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=cri --kubernetes-version=1.18.0

(6)需要做兩個(gè)配置:

vim /etc/sysconfig/kubelet

#加入以下參數(shù)

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

第(5)步失敗的話,試試執(zhí)行下方是否會(huì)失敗。

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

#在初始化時(shí)加入--ignore 選項(xiàng)

如何失敗,查詢kubeadm 配置鏡像依賴的版本號(hào):

kubeadm config images list

拉取鏡像命令:共計(jì)7個(gè)服務(wù)

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.18.0

docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.18.0

docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.18.0

docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.18.0

docker pull mirrorgooglecontainers/pause:3.2

docker pull mirrorgooglecontainers/etcd-amd64:3.4.3-0

docker pull coredns/coredns:1.6.7

或者從阿里云拉取鏡像:共計(jì)7個(gè)服務(wù)

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.4.3-0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2

docker pull coredns/coredns:1.6.7

查詢鏡像文件:

docker images

將下載下來(lái)的鏡像文件修改成k8s前綴的名字,通過(guò)dockers tag 命令來(lái)修改鏡像的標(biāo)簽,命令如下

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0

docker tag?registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2

docker tag coredns/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7

將之前下載下來(lái)的鏡像刪除

docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.18.0

docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.0

docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0

docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.0

docker rmi registry.aliyuncs.com/google_containers/etcd:3.4.3-0

docker rmi registry.aliyuncs.com/google_containers/pause:3.2

docker rmi coredns/coredns:1.6.7

(7)初始化出錯(cuò)后,先回退初始化,命令:

kubeadm reset

再進(jìn)行初始化操作:

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

獲取主節(jié)點(diǎn)的代碼。其它節(jié)點(diǎn)加入此集群時(shí)使用:

kubeadm join 192.168.40.131:6443 --token zznd5f.neo3a9h2mycb2gh7 --discovery-token-ca-cert-hash sha256:e948084a4eca206c3f1bb74b91acb02a3d17035b5f222b8dba901328fe56d312

配置下變量

建議用普通用戶運(yùn)行以下三個(gè)命令:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

建議root用戶執(zhí)行下面命令:

export KUBECONFIG=/etc/kubernetes/admin.conf

也可以直接放到~/.bash_profile

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

(8)重啟

docker restart $(docker ps -a -q)

到這一步我們已經(jīng)可以用以下命令查看集群信息:

kubectl? get? node


這個(gè)時(shí)候只有一個(gè)master節(jié)點(diǎn),而且Status是NotReady狀態(tài),這是因?yàn)闆](méi)有安裝網(wǎng)絡(luò)組件的原因,我們需要安裝下

最后編輯于
?著作權(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ù)。

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