百度網(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ò)組件的原因,我們需要安裝下