怎么安装Kubernetes

发布时间:2021-08-21 10:41:03 作者:chen
来源:亿速云 阅读:218

怎么安装Kubernetes

目录

  1. 引言
  2. Kubernetes 概述
  3. 安装前的准备
  4. 安装 Kubernetes 集群
  5. 验证 Kubernetes 集群
  6. 常见问题与解决方案
  7. 总结

引言

Kubernetes 是一个开源的容器编排平台,用于自动化应用程序的部署、扩展和管理。它最初由 Google 开发,现在由 Cloud Native Computing Foundation (CNCF) 维护。Kubernetes 已经成为容器编排的事实标准,广泛应用于生产环境中。

本文将详细介绍如何安装 Kubernetes 集群,包括安装前的准备工作、安装过程、验证集群以及常见问题的解决方案。通过本文,您将能够成功安装并运行一个 Kubernetes 集群。

Kubernetes 概述

Kubernetes 是一个强大的容器编排平台,它可以帮助您管理容器化应用程序的部署、扩展和运维。Kubernetes 提供了许多功能,包括:

Kubernetes 的核心概念包括:

安装前的准备

在安装 Kubernetes 之前,您需要完成一些准备工作,包括确保系统满足要求、安装 Docker、kubectl 和 kubeadm。

系统要求

Kubernetes 对系统有一定的要求,以下是安装 Kubernetes 的最低系统要求:

安装 Docker

Kubernetes 使用 Docker 作为容器运行时,因此在安装 Kubernetes 之前,您需要先安装 Docker。

在 Ubuntu 上安装 Docker

  1. 更新软件包索引:
   sudo apt-get update
  1. 安装依赖包:
   sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  1. 添加 Docker 的官方 GPG 密钥:
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加 Docker 的软件源:
   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. 更新软件包索引:
   sudo apt-get update
  1. 安装 Docker:
   sudo apt-get install -y docker-ce
  1. 启动 Docker 服务:
   sudo systemctl start docker
  1. 设置 Docker 开机自启:
   sudo systemctl enable docker

在 CentOS 上安装 Docker

  1. 更新软件包索引:
   sudo yum update -y
  1. 安装依赖包:
   sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加 Docker 的软件源:
   sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装 Docker:
   sudo yum install -y docker-ce
  1. 启动 Docker 服务:
   sudo systemctl start docker
  1. 设置 Docker 开机自启:
   sudo systemctl enable docker

安装 kubectl

kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。

在 Ubuntu 上安装 kubectl

  1. 下载 kubectl:
   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  1. 安装 kubectl:
   sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  1. 验证安装:
   kubectl version --client

在 CentOS 上安装 kubectl

  1. 下载 kubectl:
   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  1. 安装 kubectl:
   sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  1. 验证安装:
   kubectl version --client

安装 kubeadm

kubeadm 是 Kubernetes 的安装工具,用于快速搭建 Kubernetes 集群。

在 Ubuntu 上安装 kubeadm

  1. 添加 Kubernetes 的软件源:
   sudo apt-get update && sudo apt-get install -y apt-transport-https curl
   curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
   cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
   deb https://apt.kubernetes.io/ kubernetes-xenial main
   EOF
  1. 更新软件包索引:
   sudo apt-get update
  1. 安装 kubeadm、kubelet 和 kubectl:
   sudo apt-get install -y kubelet kubeadm kubectl
  1. 设置 kubelet 开机自启:
   sudo systemctl enable --now kubelet

在 CentOS 上安装 kubeadm

  1. 添加 Kubernetes 的软件源:
   cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
   [kubernetes]
   name=Kubernetes
   baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
   enabled=1
   gpgcheck=1
   repo_gpgcheck=1
   gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
   exclude=kube*
   EOF
  1. 安装 kubeadm、kubelet 和 kubectl:
   sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  1. 设置 kubelet 开机自启:
   sudo systemctl enable --now kubelet

安装 Kubernetes 集群

在完成安装前的准备工作后,您可以开始安装 Kubernetes 集群。Kubernetes 集群由 Master 节点和 Worker 节点组成。Master 节点负责管理整个集群,而 Worker 节点负责运行应用程序。

初始化 Master 节点

  1. 在 Master 节点上执行以下命令初始化 Kubernetes 集群:
   sudo kubeadm init --pod-network-cidr=10.244.0.0/16

其中,--pod-network-cidr=10.244.0.0/16 是用于 Pod 网络的 CIDR 地址段,您可以根据需要修改。

  1. 初始化完成后,您将看到类似以下的输出:
   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

   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/

   Then you can join any number of worker nodes by running the following on each as root:

   kubeadm join <control-plane-endpoint>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
  1. 按照输出中的提示,执行以下命令以配置 kubectl:
   mkdir -p $HOME/.kube
   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 现在,您可以使用 kubectl 查看集群状态:
   kubectl get nodes

输出应显示 Master 节点的状态为 NotReady,这是因为尚未安装网络插件。

加入 Worker 节点

  1. 在 Worker 节点上执行以下命令加入 Kubernetes 集群:
   sudo kubeadm join <control-plane-endpoint>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>

其中,<control-plane-endpoint> 是 Master 节点的 IP 地址或主机名,<port> 是 Kubernetes API 服务器的端口(默认为 6443),<token><hash> 是初始化 Master 节点时生成的令牌和证书哈希。

  1. 在 Master 节点上查看集群状态:
   kubectl get nodes

输出应显示 Worker 节点的状态为 NotReady,这是因为尚未安装网络插件。

配置网络插件

Kubernetes 集群需要网络插件来实现 Pod 之间的通信。常用的网络插件包括 Flannel、Calico 和 Weave。

安装 Flannel

  1. 在 Master 节点上执行以下命令安装 Flannel:
   kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  1. 查看 Pod 状态:
   kubectl get pods -n kube-system

输出应显示 Flannel 相关的 Pod 状态为 Running

  1. 查看集群状态:
   kubectl get nodes

输出应显示 Master 节点和 Worker 节点的状态为 Ready

安装 Calico

  1. 在 Master 节点上执行以下命令安装 Calico:
   kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
  1. 查看 Pod 状态:
   kubectl get pods -n kube-system

输出应显示 Calico 相关的 Pod 状态为 Running

  1. 查看集群状态:
   kubectl get nodes

输出应显示 Master 节点和 Worker 节点的状态为 Ready

安装 Weave

  1. 在 Master 节点上执行以下命令安装 Weave:
   kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
  1. 查看 Pod 状态:
   kubectl get pods -n kube-system

输出应显示 Weave 相关的 Pod 状态为 Running

  1. 查看集群状态:
   kubectl get nodes

输出应显示 Master 节点和 Worker 节点的状态为 Ready

验证 Kubernetes 集群

在完成 Kubernetes 集群的安装后,您可以通过以下步骤验证集群是否正常工作。

  1. 查看集群状态:
   kubectl get nodes

输出应显示所有节点的状态为 Ready

  1. 部署一个测试应用程序:
   kubectl create deployment nginx --image=nginx
  1. 查看 Pod 状态:
   kubectl get pods

输出应显示 Nginx Pod 的状态为 Running

  1. 暴露 Nginx 服务:
   kubectl expose deployment nginx --port=80 --type=NodePort
  1. 查看服务状态:
   kubectl get svc

输出应显示 Nginx 服务的端口信息。

  1. 访问 Nginx 服务:

在浏览器中访问 http://<node-ip>:<node-port>,其中 <node-ip> 是任意节点的 IP 地址,<node-port> 是 Nginx 服务的 NodePort。您应看到 Nginx 的欢迎页面。

常见问题与解决方案

在安装 Kubernetes 集群的过程中,您可能会遇到一些常见问题。以下是一些常见问题及其解决方案。

1. kubeadm init 失败

问题描述:在执行 kubeadm init 时,可能会遇到各种错误,例如网络问题、Docker 配置问题等。

解决方案

2. Worker 节点无法加入集群

问题描述:在执行 kubeadm join 时,Worker 节点可能无法成功加入集群。

解决方案

3. Pod 状态为 Pending

问题描述:在部署应用程序后,Pod 的状态可能一直为 Pending

解决方案

4. 服务无法访问

问题描述:在暴露服务后,可能无法通过 NodePort 访问服务。

解决方案

总结

通过本文,您已经学会了如何安装 Kubernetes 集群。Kubernetes 是一个功能强大的容器编排平台,可以帮助您轻松管理容器化应用程序。虽然安装过程可能有些复杂,但通过本文的详细步骤,您应该能够成功安装并运行一个 Kubernetes 集群。

在实际生产环境中,Kubernetes 的安装和配置可能会更加复杂,您可能需要根据具体需求进行调整和优化。希望本文能够为您提供一个良好的起点,帮助您更好地理解和掌握 Kubernetes。

如果您在安装过程中遇到任何问题,欢迎参考本文的常见问题与解决方案部分,或者查阅 Kubernetes 官方文档以获取更多帮助。祝您在 Kubernetes 的世界中玩得开心!

推荐阅读:
  1. kubernetes单节点安装
  2. 安装kubernetes gitlab runner

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes

上一篇:Nginx中如何实现rewrite正则匹配重写

下一篇:Nginx版本如何实现平滑升级与回滚

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》