温馨提示×

如何在CentOS上利用Kubernetes进行微服务架构

小樊
44
2025-11-03 22:16:15
栏目: 智能运维

在CentOS上利用Kubernetes进行微服务架构的步骤如下:

1. 安装Kubernetes集群

使用kubeadm安装

  1. 更新系统

    sudo yum update -y
    
  2. 安装Docker

    sudo yum install -y docker
    sudo systemctl start docker
    sudo systemctl enable docker
    
  3. 配置Docker镜像加速(可选): 编辑/etc/docker/daemon.json文件,添加加速器地址:

    {
      "registry-mirrors": ["https://<your-mirror>"]
    }
    

    然后重启Docker:

    sudo systemctl restart docker
    
  4. 安装kubeadm、kubelet和kubectl

    sudo yum install -y kubeadm kubelet kubectl --disable-gpg-check
    sudo systemctl enable kubelet
    sudo systemctl start kubelet
    
  5. 初始化Kubernetes集群

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

    记录输出的kubeadm join命令,稍后用于加入工作节点。

  6. 配置kubectl

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  7. 安装网络插件(例如Flannel):

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

2. 部署微服务

创建命名空间

kubectl create namespace my-namespace

部署应用

假设你有一个简单的微服务应用,可以使用Deployment和Service来部署。

  1. 创建Deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
      namespace: my-namespace
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - name: my-app
            image: my-app-image:latest
            ports:
            - containerPort: 8080
    

    保存为my-app-deployment.yaml,然后应用:

    kubectl apply -f my-app-deployment.yaml
    
  2. 创建Service

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

    保存为my-app-service.yaml,然后应用:

    kubectl apply -f my-app-service.yaml
    

3. 验证部署

  1. 检查Pod状态

    kubectl get pods --namespace=my-namespace
    
  2. 检查Service状态

    kubectl get svc --namespace=my-namespace
    
  3. 访问应用: 如果Service类型是LoadBalancer,Kubernetes会分配一个外部IP地址,可以通过该IP地址访问应用。

4. 添加工作节点

在每个工作节点上执行以下步骤:

  1. 初始化kubelet

    sudo systemctl enable kubelet
    sudo systemctl start kubelet
    
  2. 加入集群: 使用之前记录的kubeadm join命令加入集群。

5. 监控和管理

使用kubectl命令行工具或Kubernetes Dashboard来监控和管理集群。

安装Kubernetes Dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

然后访问Dashboard:

kubectl proxy

在浏览器中打开http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

通过以上步骤,你可以在CentOS上成功部署和管理一个基于Kubernetes的微服务架构。

0