linux上部署kubernetes

在Linux上部署Kubernetes可以通过多种方式实现,包括使用kubeadm、Kubespray、Minikube、Rancher等。这里,我将详细介绍如何使用kubeadm在裸机上部署一个基本的Kubernetes集群。Kubeadm是Kubernetes官方提供的用于快速安装和初始化集群的工具。

步骤 1: 准备环境

1.1 系统要求

  • 推荐使用Ubuntu 18.04 LTS 或 CentOS 7 以上的Linux发行版。
  • 确保所有节点已安装Docker(1.13.1+)和kubelet、kubeadm、kubectl(版本兼容)。
  • 禁用swap(Kubernetes 1.8+ 不支持具有启用swap的节点)。
  • 确保节点之间的时间同步。

1.2 安装Docker

1
2
3
4
5
6
7
8
9
10
11
# Ubuntu 示例
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce

# 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

1.3 安装kubeadm, kubelet, kubectl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 设置Kubernetes仓库
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

# 安装kubeadm, kubelet, kubectl
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 阻止自动升级

# 启动kubelet
sudo systemctl enable --now kubelet

步骤 2: 初始化主节点

在选定的主节点上运行以下命令:

1
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<master-node-ip>

注意替换<master-node-ip>为你的主节点的IP地址。此命令将初始化集群,并生成一个kubeadm join命令,用于将工作节点加入到集群。

步骤 3: 配置kubectl

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

步骤 4: 安装Pod网络插件

Kubernetes需要网络插件来确保Pod之间可以相互通信。

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

步骤 5: 添加工作节点

在每个工作节点上,使用从主节点获得的kubeadm join命令加入集群。

步骤 6: 验证集群状态

在主节点上,运行以下命令以验证集群是否运行正常:

1
kubectl get nodes

后续步骤

  • 根据需要安装Helm、Metallb、Ingress Controller等Kubernetes工具。
  • 部署你的应用程序到Kubernetes集群。

这些步骤概述了使用kubeadm在Linux上部署Kubernetes集群的基本过程。每个步骤都可能需要根据你的具体环境和需求进行调整。