在Ubuntu 22.04上搭建Kubernetes集群

Kubernetes 简介

什么是 Kubernetes?

Kubernetes(常简称为 K8s)是一个强大的开源平台,用于管理容器化应用程序的部署、扩展和运行。它最初由 Google 设计并捐赠给 Cloud Native Computing Foundation(CNCF)来维护,现在已经成为容器编排领域的事实标准。

Kubernetes 的核心特性

  • 服务发现和负载均衡:Kubernetes 可以使用 DNS 名称或自己的 IP 地址暴露容器,并在容器之间负载均衡流量。
  • 存储编排:自动挂载所选的存储系统,如本地磁盘、公共云提供商等。
  • 自动部署和回滚:Kubernetes 支持声明式滚动更新和回滚。
  • 自动完成装箱计算:Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM),并自动完成装箱计算,以尽可能高效地利用集群资源。
  • 自我修复:Kubernetes 重启失败的容器、替换和杀死不响应用户定义健康检查的容器,并且在一些节点失败时重新调度容器。
  • 密钥和配置管理:你可以存储和管理敏感信息,如密码、OAuth 令牌和 ssh 密钥,并通过 Kubernetes Secrets 和 ConfigMaps 传递给容器。
  • 扩展性:Kubernetes 的 API 允许你开发自己的扩展和服务,添加插件和集成第三方工具。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1 安装Docker

Kubernetes依赖于容器化技术,Docker是最受欢迎的容器化平台。让我们从在你的Ubuntu 22.04机器上安装Docker开始。

bash 复制代码
sudo apt update
sudo apt install docker.io

启动并启用Docker服务:

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker

验证安装是否成功,运行测试容器:

bash 复制代码
sudo docker run hello-world

2 在Ubuntu 22.04上安装Kubernetes

安装并配置Docker后,我们可以继续在Ubuntu 22.04上安装Kubernetes。Kubernetes使用多个组件来管理和编排容器。

添加Kubernetes的Ubuntu 22.04仓库并导入仓库的GPG密钥:

bash 复制代码
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/kubernetes-xenial.gpg

添加Kubernetes仓库:

bash 复制代码
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

安装Kubernetes的必要包:

bash 复制代码
sudo apt update
sudo apt install kubeadm kubelet kubectl
sudo apt-mark hold kubelet kubeadm kubectl

使用kubeadm工具初始化Ubuntu 22.04上的Kubernetes集群:

bash 复制代码
sudo swapoff -a
sudo sed -i '/ swap / s/^\\(.*\\)$/#\\1/g' /etc/fstab
sudo kubeadm init

配置你的用户账户,以非root用户身份访问集群:

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

3 配置Kubernetes

成功在Ubuntu 22.04上安装Kubernetes后,是时候根据你的需求进行配置了。以下是一些重要的配置:

  1. 设置集群范围的DNS:Kubernetes使用CoreDNS进行集群DNS管理。按照官方Kubernetes文档进行设置。
  2. 使用SSL/TLS证书保护你的集群:通过配置SSL/TLS证书来保护你的集群。参考Kubernetes文档获取详细指导。
  3. 管理资源分配和限制:为你的应用程序定义资源请求和限制,以确保最佳性能。在你的pod配置中使用资源规范,如CPU和内存限制。
  4. 配置持久存储:通过创建持久卷和卷声明,为你的应用程序启用持久存储。这允许数据即使在pod重新启动或重新调度后也能持久保存。
  5. 启用集群的监控和日志记录:安装监控和日志记录解决方案,如Prometheus和Elasticsearch,以深入了解集群的健康状况并有效排除问题。

4 在Kubernetes上部署应用程序

Kubernetes在Ubuntu 22.04上运行后,你现在可以在集群上部署应用程序。以下是一个简化的示例,展示了如何部署一个示例应用程序:

创建一个部署YAML文件(例如app-deployment.yaml),包含你应用程序所需的规范。这是一个Nginx应用程序的示例:

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - containerPort: 80

将部署应用到你的集群:

bash 复制代码
kubectl apply -f app-deployment.yaml

监控部署并检查其状态:

bash 复制代码
kubectl get deployments
kubectl get pods

相关链接

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
wmxz52014 分钟前
Linux环境安装Jenkins
linux·ci/cd·jenkins·持续部署·持续集成
小草儿79914 分钟前
gbase8s之查看锁表的sql
服务器·数据库·mysql
黑蛋同志29 分钟前
CentOS 上下载特定的安装包及其所有依赖包
linux·运维·centos
是程序喵呀1 小时前
部署GitLab服务器
运维·服务器·gitlab
●VON1 小时前
go语言的成神之路-标准库篇-os标准库
linux·运维·服务器·开发语言·后端·学习·golang
LeonNo111 小时前
k8s,operator
云原生·容器·kubernetes
云川之下1 小时前
【k8s源码】kubernetes-1.22.3\staging 目录作用
云原生·容器·kubernetes
TracyGC1 小时前
ubuntu 新建脚本shell并增加图标 双击应用实现python运行
linux·运维·ubuntu
怡雪~1 小时前
k8s的Pod亲和性
linux·容器·kubernetes
清风 0011 小时前
一、使用 mdadm 工具在 Ubuntu 上创建 RAID 1(镜像)
运维·服务器·数据库