跳到主要内容

Kubernetes 服务教程

1. 什么是 Kubernetes? 🤔🚀

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理。它可以帮助你管理复杂的微服务架构,通过高效的资源调度和自动化管理,让开发和运维团队可以专注于应用的核心功能。🌐

Kubernetes 提供了诸如 自动伸缩负载均衡服务发现自我修复 等强大的功能,使得容器化应用的管理变得更加简单和高效。⚙️

2. 安装 Kubernetes 📥🔧

2.1 环境要求 🌍

Kubernetes 集群由至少两个节点组成:一个 主节点(Master Node)和多个 工作节点(Worker Nodes)。在本教程中,我们将使用 kubeadm 来安装 Kubernetes。

  • 操作系统:Ubuntu、CentOS、RHEL、Debian
  • CPU:至少 2 核
  • 内存:至少 2GB

2.2 安装 Kubernetes 依赖项 🧰

  1. 在所有节点上,禁用 swap(Kubernetes 要求关闭 swap):
sudo swapoff -a
  1. 更新 apt 包索引并安装 Docker:
sudo apt update
sudo apt install -y docker.io
  1. 安装 Kubernetes 的 apt 仓库:
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
  1. 安装 Kubernetes 工具:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
  1. 启用并启动 Docker 和 Kubernetes 服务:
sudo systemctl enable docker
sudo systemctl start docker
  1. 安装 kubeadm
sudo apt install -y kubeadm

2.3 配置 Kubernetes 集群 🖥️🌐

在主节点上使用 kubeadm 初始化 Kubernetes 集群:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • --pod-network-cidr:指定 Pod 网络范围,10.244.0.0/16 是 Flannel 网络插件的默认设置。

初始化完成后,执行以下命令以便为当前用户配置 kubeconfig 文件:

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

2.4 安装网络插件 🌐💡

Kubernetes 集群需要一个网络插件来提供容器之间的通信。这里我们使用 Flannel 网络插件。

在主节点上运行以下命令来安装 Flannel:

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

此命令会安装 Flannel 网络插件,并自动配置所有 Pod 的网络连接。

3. 加入工作节点 🧑‍💻👥

在工作节点上运行 kubeadm join 命令来将其加入到集群中。在主节点上运行以下命令来获取 join 命令:

kubeadm token create --print-join-command

复制输出的 kubeadm join 命令,然后在工作节点上执行。🚀

4. 管理 Kubernetes 集群 🖥️⚙️

4.1 查看集群状态 📊

查看节点状态:

kubectl get nodes

查看集群的 Pod 状态:

kubectl get pods --all-namespaces

查看集群服务:

kubectl get svc

4.2 部署应用 🌐🚀

使用 Kubernetes 部署应用是非常简单的。首先,创建一个简单的 Deployment 文件(如 nginx-deployment.yaml):

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

然后,使用以下命令将应用部署到 Kubernetes 集群中:

kubectl apply -f nginx-deployment.yaml

部署完成后,查看部署的 Pod 和服务:

kubectl get pods
kubectl get svc

4.3 暴露服务 🖥️🌐

要让外部流量能够访问你的应用,可以将服务暴露出来。创建一个 Service 文件(如 nginx-service.yaml):

apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer

应用此文件来创建服务:

kubectl apply -f nginx-service.yaml

这样,你就可以通过 LoadBalancer 或 NodePort 等方式来访问你的应用了。🌍

5. Kubernetes 升级与维护 🛠️🔄

5.1 升级 Kubernetes 组件 🔧

要升级 Kubernetes 组件(如 kubeadmkubeletkubectl),首先更新 Kubernetes 仓库:

sudo apt update

然后升级所需的组件:

sudo apt upgrade kubeadm kubelet kubectl

5.2 检查集群状态 📊

在升级后,检查集群的健康状态和节点的版本:

kubectl get nodes
kubectl version

确保集群中的每个节点都已成功升级。

6. 小结 🎉🌟

Kubernetes 是一个强大的容器编排平台,能够帮助你高效管理和自动化应用的部署、扩展和维护。通过 Kubernetes,你可以轻松创建和管理多个容器,构建可靠的微服务架构,提升开发和运维的效率。🚀

希望这篇教程对你有所帮助!别忘了收藏 在线知识库www.zxzsk.com )哦!😊