Kubernetes集群搭建及Dashboard与Ingress部署指南

Kubernetes(简称K8s)是一种开源的容器编排平台,旨在自动化容器化应用程序的部署、扩展和管理。本文将详细介绍如何在Ubuntu 22.04系统上搭建Kubernetes 1.30.1集群,并开启Dashboard 2.7.0,部署Ingress NGINX控制器(版本1.10.1)。

环境准备

首先,确保你的系统是Ubuntu 22.04,并且具有两个及以上的机器节点。我们将选择一台作为主节点(Master),其余作为工作节点(Worker)。

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装基本工具

安装curl, apt-transport-https, ca-certificates, gnupg, software-properties-common

sudo apt install -y curl apt-transport-https ca-certificates gnupg software-properties-common

3. 安装Docker

K8s需要容器运行时,Docker是最常用的选择。

sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

为了让非root用户能够使用Docker,可以将该用户添加到docker组中。

sudo usermod -aG docker $USER

4. 安装Kubeadm、Kubelet和Kubectl

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"
sudo apt update
sudo apt install -y kubelet=1.30.1-00 kubeadm=1.30.1-00 kubectl=1.30.1-00
sudo apt-mark hold kubelet kubeadm kubectl

5. 初始化K8s集群

在主节点运行以下命令进行初始化,设置Pod网络 CIDR。

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

完成后,按照指示执行后续命令配置kubectl:

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

6. 部署网络插件

我们将使用Flannel作为网络插件。可以通过以下命令进行安装:

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

7. 加入工作节点

在其他工作节点上,执行以下命令,替换为主节点初始化时给出的kubeadm join命令:

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

8. 验证集群状态

使用以下命令检查集群状态:

kubectl get nodes

你应该看到主节点和所有工作节点的状态为Ready

9. 安装Kubernetes Dashboard

使用以下命令安装Dashboard:

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

为了访问Dashboard,我们还需要创建一个服务账户和绑定角色:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard

将上述内容保存为dashboard-admin-user.yaml,并执行以下命令:

kubectl apply -f dashboard-admin-user.yaml

获取登录token:

kubectl get secrets -n kubernetes-dashboard
kubectl describe secret <token-name> -n kubernetes-dashboard

10. 安装Ingress NGINX控制器

Ingress是Kubernetes中的资源,用于管理外部访问到服务。我们将安装Ingress NGINX控制器:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml

11. 验证Ingress控制器

检查Ingress NGINX控制器状态:

kubectl get pods --namespace ingress-nginx

结论

到此为止,我们已经在Ubuntu 22.04上成功搭建了Kubernetes 1.30.1集群,安装了Dashboard 2.7.0和Ingress NGINX控制器。你现在可以开始在Kubernetes中部署你的应用程序。希望这篇文章对你有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部