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后,是时候根据你的需求进行配置了。以下是一些重要的配置:
- 设置集群范围的DNS:Kubernetes使用CoreDNS进行集群DNS管理。按照官方Kubernetes文档进行设置。
- 使用SSL/TLS证书保护你的集群:通过配置SSL/TLS证书来保护你的集群。参考Kubernetes文档获取详细指导。
- 管理资源分配和限制:为你的应用程序定义资源请求和限制,以确保最佳性能。在你的pod配置中使用资源规范,如CPU和内存限制。
- 配置持久存储:通过创建持久卷和卷声明,为你的应用程序启用持久存储。这允许数据即使在pod重新启动或重新调度后也能持久保存。
- 启用集群的监控和日志记录:安装监控和日志记录解决方案,如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