当前位置:首页 > CN2资讯 > 正文内容

云服务器多台设备连接 3台云服务器

3天前CN2资讯



K8S集群搭建

  • 一、开通三个云服务器
  • 1、服务器设置
  • 2、远程连接
  • 安装Docker
  • 二、kubeadm创建集群
  • 1、基础环境
  • 2、安装kubelet、kubeadm、kubectl
  • 3、下载各个机器需要的镜像
  • 4、初始化主节点
  • 5、复制返回的命令
  • 6、安装网络组件
  • 7、加入node节点
  • 8、验证集群


一、开通三个云服务器

搭建集群我们需要三台机器,这里我选择了阿里云的云服务器,如果之前没使用过阿里云,新人可以免费使用一个月。有条件的同学可以使用其它的云服务器,或者自己用虚拟机创建三个实例。


登录阿里云后进入云服务器ECS


点击免费试用 选择个人开发者



因为我已经申请过了,所以会显示我已达上限,因为免费的额度是有限的,所以我申请了一台2核8G的作为master节点,两台1核2G的作为worker节点。


最后设置到期自动释放以免产生不必要的费用,然后点击免费申请就可以创建成功。

一次只能创建一个实例,三台就重复申请三次即可。

1、服务器设置


创建完云服务器后会自动进入到管理控制台,也可以通过上面这个菜单进入。

如图 可以看到创建的三台云服务器,点击左侧菜单的实例


点击这个按钮会出现弹窗,我们选择重置密码和重置实例名称。



填写完密码后保存即可。


我将两台1核2G的命名为k8s-node、k8s-node2。一台2核8G的命名为k8s-master。


三台都配置完成后点击重启,实例名称才会生效。

至此配置结束。

2、远程连接

这里使用xshell进行远程连接


这里填写服务器的公网ip,然后点击确定。

接着输入root点击确定。

输入刚刚设置的密码后点击确定。三台服务器如法炮制。


连接完成后,ping一下另外两台的私网地址看看是否能够ping通。是私网IP不是公网IP

安装Docker

连接完成在3台服务器上安装容器运行环境docker。
执行以下指令:
1.移除以前daocker相关包

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

2.配置yum源

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io #以下是在安装k8s的时候使用 yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6

4.启动

systemctl enable docker --now

5.配置加速

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF sudo systemctl daemon-reload sudo systemctl restart docker

只需要修改registry-mirrors参数值即可,在个人阿里云的容器与镜像服务中查看镜像加速器地址。

二、kubeadm创建集群

  • 安装完容器运行环境Docker后 开始安装k8s的基础环境。
  • 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)
  • 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
  • 设置防火墙放行规则
  • 设置不同hostname
  • 内网互信
  • 禁用交换分区。为了保证 kubelet 正常工作,你必须禁用交换分区。

1、基础环境

所有的机器执行以下操作

#各个机器设置自己的域名 如k8s-node (在阿里云服务器修改过名称的可跳过这条) hostnamectl set-hostname xxxx #设置防火墙放行规则 将 SELinux 设置为 permissive 模式(相当于将其禁用) sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config #关闭swap 禁用交换分区 swapoff -a sed -ri 's/.*swap.*/#&/' /etc/fstab #允许 iptables 检查桥接流量 cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf br_netfilter EOF cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system

2、安装kubelet、kubeadm、kubectl

所有的机器执行以下操作

cat <<EOF | sudo tee /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=kubelet kubeadm kubectl EOF sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes sudo systemctl enable --now kubelet

kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环

3、下载各个机器需要的镜像

所有机器执行

sudo tee ./ <<-'EOF' #!/bin/bash images=( kube-apiserver:v1.20.9 kube-proxy:v1.20.9 kube-controller-manager:v1.20.9 kube-scheduler:v1.20.9 coredns:1.7.0 etcd:3.4.13-0 pause:3.2 ) for imageName in ${images[@]} ; do docker pull /lfy_k8s_images/$imageName done EOF chmod +x ./ && ./

4、初始化主节点

所有机器执行

#所有机器添加master域名映射,以下需要修改为自己的master IP地址 echo "172.26.0.4 cluster-endpoint" >> /etc/hosts

执行完后任意机器ping cluster-endpoint 是否ping通

注意:以下只有主节点执行!
-apiserver-advertise-address这条也需要更换为自己的master IP地址
所有机器网络范围不能和最后两条有重叠

#注意!只有主节点执行 主节点初始化 kubeadm init \ --apiserver-advertise-address=172.26.0.4 \ --control-plane-endpoint=cluster-endpoint \ --image-repository /lfy_k8s_images \ --kubernetes-version v1.20.9 \ --service-cidr=10.96.0.0/16 \ --pod-network-cidr=192.168.0.0/16 #注意所有机器的网络范围不能和最后两条有重叠

5、复制返回的命令

初始化 执行成功后会返回类似下面的一长串命令
返回的命令全部复制下来。

Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ You can now join any number of control-plane nodes by copying certificate authorities and service account keys on each node and then running the following as root: #在上面这段英文下的是Master节点的指令,需要高可用设置的同学可以多配几台master节点 kubeadm join cluster-endpoint:6443 --token hums8f.vyx71prsg74ofce7 \ --discovery-token-ca-cert-hash sha256:a394d059dd51d68bb007a532a037d0a477131480ae95f75840c461e85e2c6ae3 \ --control-plane Then you can join any number of worker nodes by running the following on each as root: #在上面这段英文下的是worker节点的指令,把你自己返回保存复制下来的 在worker节点执行 kubeadm join cluster-endpoint:6443 --token hums8f.vyx71prsg74ofce7 \ --discovery-token-ca-cert-hash sha256:a394d059dd51d68bb007a532a037d0a477131480ae95f75840c461e85e2c6ae3

注意我在上面代码中的注释,第7步需要用到对应的你自己机器返回的指令

6、安装网络组件

calico官网

#k8s 1.20 最大只能使用v3.21的版本 这里使用3.20 curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml kubectl apply -f calico.yaml

执行完 在主节点使用kubectl get pod -A 指令查看安装情况


当STATUS为Running 且REDY数量为1表示安装成功。状态不会立即变成Running的,需要稍等几分钟。

7、加入node节点

第5步复制的语句中有添加master节点的命令,也有添加Worker节点的命令
以下是我的指令,你们需要用到自己机器返回的指令

Then you can join any number of worker nodes by running the following on each as root:#在上面这段英文下的是worker节点的指令,把你自己返回保存复制下来的 在worker节点执行 kubeadm join cluster-endpoint:6443 --token hums8f.vyx71prsg74ofce7 \ --discovery-token-ca-cert-hash sha256:a394d059dd51d68bb007a532a037d0a477131480ae95f75840c461e85e2c6ae3

这里我把两台node节点机器加入了Worker节点。需要配置高可用集群(多master节点)的
在这一步执行对应的master指令即可

8、验证集群

用以下指令在master节点验证集群

kubectl get nodes

当状态为Ready时集群搭建成功


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/22974.html

    分享给朋友:

    “云服务器多台设备连接 3台云服务器” 的相关文章

    探索诸暨市:地理特征、气候与经济发展全面分析

    我发现诸暨市,这个位于浙江省中北部的县级市,真是一个令人着迷的地方。它东靠嵊州市,南面与东阳、义乌和浦江相邻,西面与桐庐和富阳相接,北边则与柯桥和萧山为界。这样的地理位置赋予了诸暨市独特的区域特色,方便了与周边城市的交流与发展。 在谈到诸暨的地理特征时,不得不提其独特的地形地貌。诸暨市位于浙东南和浙...

    Zgo VPS:高性能虚拟专用服务器的最佳选择

    在2021年,ZgoCloud(最初名为Zgovps)如雨后春笋般成立于美国特拉华州。作为一家新兴的技术公司,我们专注于提供高性能的虚拟专用服务器(VPS),这让我对公司的前景充满了期待。我们最初的使命是为各种用户提供可靠的网络解决方案,而现在我们已经成长为行业内的一股重要力量。 我们的全球数据中心...

    50kvm VPS主机服务:最优性价比与便捷选择

    50kvm是一个备受推崇的VPS主机服务品牌,它因其卓越的性价比和高效的速度而广受欢迎。这个品牌提供多种不同 유형的VPS解决方案,覆盖了从美国到亚洲的多个数据中心。特别是美国波特兰的Cera (NCP)和洛杉矶C3、Cera CN2 GIA等产品,都是非常值得关注的选择。 在我了解50kvm的过程...

    提升国际数据传输质量的9929线路分析与应用

    谈到9929线路,首先让我给大家介绍一下AS9929线路的基本情况。这条线路是中国联通为了满足国际市场的需求而推出的一种IP传输服务专线。它的起点在香港,通过海底光缆将中国与亚太及北美地区紧密连接。同时,这条线路还在欧洲和非洲设立了多个重要的网络节点(POP点),这就为跨国数据传输提供了坚实的基础。...

    深入探讨4C与1C:市场营销与电池性能优化的关键

    4C与1C概述 在探讨市场和技术发展的过程中,4C与1C是两个值得注意的概念。虽然它们的名称很相似,但是一个关注的是市场营销的策略,另一个则关乎电池的充放电性能。我常常思考这两个概念的融合点,以及它们对我们生活的深远影响。 1.1 4C理论介绍 4C理论是市场营销中一个重要的框架,帮助企业更好地理解...

    APT攻击解析:如何应对高级持续性威胁

    APT攻击,或称为高级持续性威胁,是一种复杂的网络攻击形式。这种攻击的发起者通常是具有高度组织性和专业性的攻击者,可能是国家支持的黑客组织,或者其他有目的的恶意实体。他们的目标不仅仅是短期内造成损害,而是着眼于更长远的战略性目标,比如窃取国家机密、企业的核心技术或其他商业秘密。这种攻击对目标组织的声...