在 Ubuntu 上使用 kubeadm 部署微服務需要經過以下幾個步驟:
安裝 Docker
在所有節點(包括主節點和工作節點)上安裝 Docker。可以參考官方文檔進行安裝:https://docs.docker.com/engine/install/ubuntu/
安裝 kubeadm、kubelet 和 kubectl
在所有節點上安裝 kubeadm、kubelet 和 kubectl。可以參考官方文檔進行安裝:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
初始化主節點
在主節點上運行以下命令初始化 Kubernetes 集群:
sudo kubeadm init --apiserver-advertise-address=<master-ip> --pod-network-cidr=<cidr>
其中,<master-ip>
是主節點的 IP 地址,<cidr>
是 Pod 網絡的 CIDR。例如:
sudo kubeadm init --apiserver-advertise-address=192.168.1.100 --pod-network-cidr=10.244.0.0/16
初始化完成后,會顯示一條加入集群的命令,類似于:
kubeadm join<master-ip>:<master-port> --token<token> --discovery-token-ca-cert-hash sha256:<hash>
請記下這條命令,因為稍后需要在工作節點上使用。
配置 kubectl
在主節點上運行以下命令配置 kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署網絡插件
在主節點上運行以下命令部署網絡插件(以 Calico 為例):
kubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl apply -f https://docs.projectcalico.org/manifests/custom-resources.yaml
加入工作節點
在每個工作節點上運行第 3 步中復制的加入集群命令。例如:
sudo kubeadm join 192.168.1.100:6443 --token<token> --discovery-token-ca-cert-hash sha256:<hash>
部署微服務
在主節點上創建一個名為 deployment.yaml
的文件,內容如下:
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>
替換為實際的微服務鏡像。然后運行以下命令部署微服務:
kubectl apply -f deployment.yaml
暴露微服務
在主節點上創建一個名為 service.yaml
的文件,內容如下:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-service
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
然后運行以下命令暴露微服務:
kubectl apply -f service.yaml
現在,您已經在 Ubuntu 上使用 kubeadm 成功部署了微服務。可以通過運行 kubectl get services
查看服務狀態。