在Ubuntu上使用kubeadm部署微服務(wù)的步驟

小樊
81
2024-09-10 02:54:49

在 Ubuntu 上使用 kubeadm 部署微服務(wù)需要經(jīng)過(guò)以下幾個(gè)步驟:

  1. 安裝 Docker

    在所有節(jié)點(diǎn)(包括主節(jié)點(diǎn)和工作節(jié)點(diǎn))上安裝 Docker??梢詤⒖脊俜轿臋n進(jìn)行安裝:https://docs.docker.com/engine/install/ubuntu/

  2. 安裝 kubeadm、kubelet 和 kubectl

    在所有節(jié)點(diǎn)上安裝 kubeadm、kubelet 和 kubectl??梢詤⒖脊俜轿臋n進(jìn)行安裝:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

  3. 初始化主節(jié)點(diǎn)

    在主節(jié)點(diǎn)上運(yùn)行以下命令初始化 Kubernetes 集群:

    sudo kubeadm init --apiserver-advertise-address=<master-ip> --pod-network-cidr=<cidr>
    

    其中,<master-ip> 是主節(jié)點(diǎn)的 IP 地址,<cidr> 是 Pod 網(wǎng)絡(luò)的 CIDR。例如:

    sudo kubeadm init --apiserver-advertise-address=192.168.1.100 --pod-network-cidr=10.244.0.0/16
    

    初始化完成后,會(huì)顯示一條加入集群的命令,類似于:

    kubeadm join<master-ip>:<master-port> --token<token> --discovery-token-ca-cert-hash sha256:<hash>
    

    請(qǐng)記下這條命令,因?yàn)樯院笮枰诠ぷ鞴?jié)點(diǎn)上使用。

  4. 配置 kubectl

    在主節(jié)點(diǎn)上運(yùn)行以下命令配置 kubectl:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  5. 部署網(wǎng)絡(luò)插件

    在主節(jié)點(diǎn)上運(yùn)行以下命令部署網(wǎng)絡(luò)插件(以 Calico 為例):

    kubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
    kubectl apply -f https://docs.projectcalico.org/manifests/custom-resources.yaml
    
  6. 加入工作節(jié)點(diǎn)

    在每個(gè)工作節(jié)點(diǎn)上運(yùn)行第 3 步中復(fù)制的加入集群命令。例如:

    sudo kubeadm join 192.168.1.100:6443 --token<token> --discovery-token-ca-cert-hash sha256:<hash>
    
  7. 部署微服務(wù)

    在主節(jié)點(diǎn)上創(chuàng)建一個(gè)名為 deployment.yaml 的文件,內(nèi)容如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-service
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: my-service
      template:
        metadata:
          labels:
            app: my-service
        spec:
          containers:
          - name: my-service
            image: <your-image>
            ports:
            - containerPort: 80
    

    <your-image> 替換為實(shí)際的微服務(wù)鏡像。然后運(yùn)行以下命令部署微服務(wù):

    kubectl apply -f deployment.yaml
    
  8. 暴露微服務(wù)

    在主節(jié)點(diǎn)上創(chuàng)建一個(gè)名為 service.yaml 的文件,內(nèi)容如下:

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

    然后運(yùn)行以下命令暴露微服務(wù):

    kubectl apply -f service.yaml
    

現(xiàn)在,您已經(jīng)在 Ubuntu 上使用 kubeadm 成功部署了微服務(wù)??梢酝ㄟ^(guò)運(yùn)行 kubectl get services 查看服務(wù)狀態(tài)。

0