使用kubeadm在具有Ubuntu的AWS EC2实例上设置Kubernetes集群

使用kubeadm在具有Ubuntu的AWS EC2实例上设置Kubernetes集群

在本文中,我们将了解如何在Ubuntu 18.04 LTS服务器上设置具有2个工作节点和1个主节点的Kubernetes集群。我们将使用“ kubeadm”工具来设置集群。 Kubeadm是一个工具,用于提供用于创建Kubernetes集群的“kubeadminit”和“kubeadmjoin”。在继续创建集群之前,让我们简要地了解一些术语。

    1. 码头工人:
      Docker是一个用于开发,交付和运行应用程序的开放平台。 Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。
    2. 图片:
      映像是一个只读模板,其中包含创建Docker容器的说明。通常,一个映像基于另一个映像,并进行一些其他自定义
    3. 容器:
      容器是图像的可运行实例。您可以使用Docker API或CLI创建,启动,停止,移动或删除容器。您可以将容器连接到一个或多个网络,将存储连接到它,甚至根据其当前状态创建新映像。
    4. Kubernetes:
      Kubernetes是一个开放源代码的容器编排系统,用于自动化应用程序的部署,扩展和管理。
    5. 节点:
      节点代表集群中的单个计算机。
    6. 豆荚:
      A是在同一主机上一起部署的一组容器。它是Kubernetes应用程序的基本执行单元。
    7. 部署:
      部署运行应用程序的多个副本,并自动替换任何失败或无响应的实例。它提供Pods和ReplicaSets的声明式更新。
    8. 副本集:
      它确保应该运行Pod的副本数量。它可以被认为是复制控制器的替代品。
  • 复制控制器:
    它是长时间运行的吊舱的主管。它将启动指定数量的称为副本的Pod,并确保它们始终保持运行状态。
  1. 服务:
    它是一个抽象,定义了Pod的逻辑集和访问Pod的策略。

API Server,etcd,Controller Manager和Scheduler是Master和Docker的组件,Kubelet Service和Kubernetes Proxy Service是Worker Node的组件。我们将不在本文中讨论这些组件。如果您想了解这些组件,则可以在此处访问Kubernetes的官方页面。

先决条件

  1. 3台Ubuntu 18.04服务器,至少2 GB RAM和2 CPU。
  2. 每个服务器上具有“sudo”访问权限的系统用户。

我们要做什么

  1. 使用kubeadm设置Kubernetes集群

使用kubeadm设置Kubernetes集群

这里,

我们有3个Ubuntu 18.04 LTS服务器。

服务器1 =节点1
服务器2 =节点2
服务器3 =主服务器

在继续实际安装之前,让我们更改服务器的主机名。

您可以使用以下命令在每台服务器上设置主机名。在每台服务器上执行以下命令后,重新登录服务器,以便服务器将获得新的主机名。

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

请按照下面提到的步骤启动可工作的Kubernets集群。

获取Docker gpg密钥(在所有节点上执行以下命令):

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加Docker存储库(在所有节点上执行以下命令):

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
   $(lsb_release -cs)
  stable"

获取Kubernetes gpg密钥(在所有节点上执行以下命令):

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

添加Kubernetes存储库(在所有节点上执行以下命令):

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

更新您的软件包(在所有节点上执行以下命令):

sudo apt-get update

安装Docker,kubelet,kubeadm和kubectl(在所有节点上执行以下命令):

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

保持它们为当前版本(在所有节点上执行以下命令):Advertisements.banner-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

将iptables规则添加到sysctl.conf中(在所有节点上执行以下命令):

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

立即启用iptables(在所有节点上执行以下命令:

sudo sysctl -p

在Master上:Advertisements.large-leaderboard-2 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

初始化集群(仅在主节点上执行以下命令):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

设置本地kubeconfig(仅在主节点上执行以下命令):

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

应用Flannel CNI网络覆盖(仅在主节点上执行以下命令):

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

在节点1和节点2上:

将工作节点加入集群(仅在Node1和Node2上执行以下命令):

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h 
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

验证辅助节点已成功加入集群在主节点上执行以下命令):

kubectl get nodes

结论:

在本文中,我们学习了使用kubeadm工具设置Kubernetes集群。我们已经看到,如果不遗漏这些步骤并完成正确的安装,可以很容易地创建集群。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载
你可能还喜欢