百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1ZL07VO3ysXpyr5qMpMEHiw提取碼: aa86
本次搭建Docker + kubernetes前提條件是在VMware + CentOS 7 上面搭建的;
我們需要做一下的工作:
(1)安裝VMware 虐沥,運行CentOS 7系統(tǒng)熊经。
(2)本次是在同一個虛擬機上運行,只搭建一個Master
? (3) 安裝docker + K8S
一欲险、安裝VMware
官網(wǎng)地址:https://my.vmware.com/zh/web/vmware/downloads??(網(wǎng)上有很多自帶破解的下載镐依,大家也可以找一下)
我這里下載的是VM15(安裝和新建虛擬機的步驟就跳過了,我也是百度的)
虛擬機配置:4核4G(也可以減小配置)
CentOs下載地址:https://www.centos.org/download/?
具體百度安裝VMware盯荤。
二馋吗、準備工作
VMware啟動后焕盟,設置登錄賬號為root 秋秤,密碼 (自己設置)
1、關閉防火墻脚翘,并且不啟動防火墻
systemctl stop firewalld
systemctl disable firewalld
2灼卢、關閉swap
vi /etc/fstab
在行首加 #,注釋該行
3来农、設置主機名稱位master
hostnamectl set-hostname master
或者??
? ? 執(zhí)行? vi /etc/sysconfig/network
? ??HOSTNAME=master
4鞋真、重新啟動虛擬機
二、安裝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加速器
加速器怎么配置就不說了沃于,這里是我的阿里云加速地址涩咖,大家可以自行替換,然后我們還需要指定下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)設置開機啟動
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
初始化相應的版本:
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)需要做兩個配置:
vim /etc/sysconfig/kubelet
#加入以下參數(shù)
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
第(5)步失敗的話咨演,試試執(zhí)行下方是否會失敗闸昨。
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
#在初始化時加入--ignore 選項
如何失敗,查詢kubeadm 配置鏡像依賴的版本號:
kubeadm config images list
拉取鏡像命令:共計7個服務
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
或者從阿里云拉取鏡像:共計7個服務
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
將下載下來的鏡像文件修改成k8s前綴的名字,通過dockers tag 命令來修改鏡像的標簽饵较,命令如下
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
將之前下載下來的鏡像刪除
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)初始化出錯后拍嵌,先回退初始化,命令:
kubeadm reset
再進行初始化操作:
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
獲取主節(jié)點的代碼循诉。其它節(jié)點加入此集群時使用:
kubeadm join 192.168.40.131:6443 --token zznd5f.neo3a9h2mycb2gh7 --discovery-token-ca-cert-hash sha256:e948084a4eca206c3f1bb74b91acb02a3d17035b5f222b8dba901328fe56d312
配置下變量
建議用普通用戶運行以下三個命令:
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
這個時候只有一個master節(jié)點横辆,而且Status是NotReady狀態(tài),這是因為沒有安裝網(wǎng)絡組件的原因茄猫,我們需要安裝下