運(yùn)行如下腳本
#最小化安裝沒有yum-utils
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
#安裝docker
yum -y install docker-ce
#設(shè)置docker鏡像加速
echo '{"registry-mirrors": ["http://hub-mirror.c.163.com"]}'>/etc/docker/daemon.json
#重啟生效
systemctl start docker & systemctl enable docker
#禁用swap,否則kubelet無法正常使用
sed -i '/ swap / s/^/#/' /etc/fstab
swapoff -a
#關(guān)閉防火墻,各種端口訪問簡化設(shè)置
systemctl stop firewalld & systemctl disable firewalld
#配置K8S軟件源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
#目前kubelet還不支持selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#安裝kubelet kubeadmin kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
#官方說是有些用戶反映CentOS的BUG
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#get latest packages
yum update
下載鏡像
使用如下命令檢查所需鏡像。
kubeadm config images list
修改如下腳本的KUBE_VERSION為上面命令里面獲取的版本號,保存并運(yùn)行贴唇。
cat>pull_images.sh<<'EOF'
#!/bin/bash
KUBE_VERSION=v1.14.2
FLANNEL_VERSION=v0.11.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
DNS_VERSION=1.3.1
prefix=registry.cn-hangzhou.aliyuncs.com/google_containers
images=(
kube-proxy-amd64:${KUBE_VERSION}
kube-scheduler-amd64:${KUBE_VERSION}
kube-controller-manager-amd64:${KUBE_VERSION}
kube-apiserver-amd64:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd-amd64:${ETCD_VERSION}
coredns:${DNS_VERSION}
)
for image in ${images[@]}
do
NEW_IMAGE=`echo ${image}|awk '{gsub(/-amd64/,"",$0);print}'`
echo ${NEW_IMAGE}
docker pull ${prefix}/${image}
docker tag ${prefix}/${image} k8s.gcr.io/${NEW_IMAGE}
docker rmi ${prefix}/${image}
done
#prefix倉庫里面沒有flannel,單獨(dú)拉取
docker pull quay-mirror.qiniu.com/coreos/flannel:${FLANNEL_VERSION}-amd64
docker tag quay-mirror.qiniu.com/coreos/flannel:${FLANNEL_VERSION}-amd64 quay.io/coreos/flannel:${FLANNEL_VERSION}-amd64
EOF
bash pull_images.sh
#不執(zhí)行如下命令運(yùn)行kubectl時(shí)會(huì)報(bào)錯(cuò):The connection to the server localhost:8080 was refused
export KUBECONFIG=/etc/kubernetes/admin.conf
#簡化kubectl命令輸入
cat >> ~/.bashrc <<EOF
alias k='kubectl'
alias kk='kubectl -n kube-system'
export KUBECONFIG=/etc/kubernetes/admin.conf
EOF
source ~/.bashrc
至此模板結(jié)點(diǎn)已經(jīng)配置完成飞袋!
生成node1
關(guān)機(jī),在node0上右鍵選擇復(fù)制,輸入node1,勾選初使化所有網(wǎng)卡的MAC地址戳气,點(diǎn)擊繼續(xù),選擇完全復(fù)制巧鸭,點(diǎn)擊繼續(xù)瓶您,選擇當(dāng)前電腦虛擬狀態(tài),點(diǎn)擊復(fù)制。參照node0配置好端口轉(zhuǎn)發(fā)呀袱。
集群安裝
在node0上執(zhí)行如下初使化集群贸毕。
#設(shè)置主機(jī)名為node0
hostnamectl set-hostname node0
kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.14.2 --apiserver-advertise-address=192.168.0.2
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
記錄下如上命令最后的輸出,用于其它結(jié)點(diǎn)加入集群。
kubeadm join 192.168.0.2:6443 --token r19zrj.kvphznlyisn021sf \
--discovery-token-ca-cert-hash sha256:86deab015a0713811e3e05b1cbecd55f85b79c43c3f16460a2f4627cfae0cdef
啟動(dòng)node1夜赵,在node0上執(zhí)行如下命令將配置文件分發(fā)到node1明棍,方便使用。
scp /etc/kubernetes/admin.conf root@192.168.0.3:/etc/kubernetes/admin.conf
node1上運(yùn)行如下命令設(shè)置主機(jī)名
hostnamectl set-hostname node1
運(yùn)行如上的kubeadm join加入集群寇僧,至此摊腋,2節(jié)點(diǎn)集群創(chuàng)建完成!
小編這里整理了更多相關(guān)的 學(xué)習(xí)資料和 學(xué)習(xí)視頻嘁傀,可免費(fèi)領(lǐng)取兴蒸。
加 VX:17778119562? ? ? ? 通過驗(yàn)證備注:111(備注必填,方便通過)