修改 kubernetes.repo 文件中URL为国内镜像源地址
vi /etc/yum.repos.d/kubernetes.repo
修改为以下内容
Kubernetes name=Kubernetes baseurl=https://mirrors.cloud.tencent.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
清除并重建缓存
yum clean all
yum -y makecache
主要是安装K8S中的三个组件:kubelet kubeadm kubectl,并指定版本,避免下载最新版本导致不兼容。
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
#设置kubelet为开机自启动
systemctl enable kubelet
前边的所有操作,在master及节点上都需要进行。
进入到master服务器,执行以下指令
kubeadm init \
--apiserver-advertise-address=192.168.137.3 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
相关参数说明:
--apiserver-advertise-address
集群master的IP地址--image-repository
镜像仓库地址--kubernetes-version
K8S版本--service-cidr
service服务的虚拟IP,由集群外部访问集群内部时,可通过该地址进行访问--pod-network-cidr
POD网络地址,集群内部虚拟IP,应与service服务的虚拟IP不同--ignore-preflight-errors
设置忽略预检错误执行完该命令后,末尾会生成节点加入到k8s集群的指令。
该token在24小时内有效,过时需要重新生成,生成的指令为:
kubeadm token create --print-join-command
创建必要文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
进入到节点服务器,执行master服务器末尾生成的指令
如图,执行完成后,该节点被成功加入到了k8s集群中。
在 master 中执行指令 kubectl get nodes
,两个服务器都加入到了K8S集群中,一台作为控制器和master,另外一台作为节点。
Calico是一个纯三层的数据中心网络解决方案,是目前K8S主流的网络方案。K8S中要求各容器互联互通且相互隔离。
继续进入到master中进行操作。
下载yaml文件
wget https://docs.projectcalico.org/v3.15/manifests/calico.yaml --no-check-certificate
下载完成后,需要修改里面定义的POD网络(CALICO_IPV4POOL_CIDR),与前面 3.1 步骤中 kubeadm init
的 -pod-network-cidr
指定的内容保持一致。
在yaml文件中搜索并找到该 name 数据,打开注释并对value进行修改。
将该yaml文件,放到master服务器的 /usr/local 目录或其它任意目录下,在该目录下执行如下指令:
kubectl apply -f calico.yaml
服务器将从网络中下载calico相关镜像到节点,该过程持续时间较长。
在master中重新执行指令 kubectl get nodes
,查看节点状态,此时各节点都处于 Ready 状态。
查看通信状态
kubectl get pods -n kube-system
所有服务均处于启动状态。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。