# K8S和kubeadm哪个好用

## 1. 简介
Kubernetes(简称K8S)是一个用于自动部署、扩展和管理容器化应用程序的开源平台。而kubeadm是Kubernetes官方推出的一种快速部署K8S集群的工具。本文将介绍如何选择使用K8S和kubeadm,并演示如何使用kubeadm搭建一个简单的K8S集群。

## 2. 选择K8S还是kubeadm
Kubernetes作为容器编排和管理的领先者,具有更多的功能和更复杂的配置选项,适合复杂的生产环境。而kubeadm则更适合快速部署和测试,是搭建K8S集群的简便选择。

下表简要比较了K8S和kubeadm的特点:

| 特点 | K8S | kubeadm |
|---------------|-------------------|-------------------------|
| 部署和管理 | 复杂、功能强大 | 简单、快速 |
| 适用场景 | 生产环境 | 测试、开发环境 |
| 配置选项 | 丰富 | 限制,自动配置 |
| 管理便捷性 | 较复杂 | 简便 |

## 3. 使用kubeadm搭建K8S集群
### 步骤一:准备环境
确保每个节点的主机名、IP地址和SSH密钥已经正确配置。

### 步骤二:安装Docker和kubeadm
```bash
# 安装Docker
sudo apt-get update
sudo apt-get install -y docker.io

# 安装kubeadm、kubelet和kubectl
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 <deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
```

### 步骤三:初始化Master节点
```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```
初始化完成后,请按照提示执行以下命令将kubectl配置为您的用户:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

### 步骤四:安装网络插件
为了使Pod之间可以通信,需要安装一个网络插件。这里我们选择使用Flannel。
```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```

### 步骤五:加入Node节点
如果您有其他节点要加入集群,可以使用以下命令将其加入:
```bash
sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash
```

至此,您已经成功使用kubeadm搭建了一个简单的Kubernetes集群。祝贺您!希望这篇文章对您有所帮助。

## 结语
Kubernetes和kubeadm各有优劣,根据您的实际需求来选择适合的工具。在实际使用中,您可能会碰到各种问题,但不要气馁,持续学习和尝试是成长的关键。加油!

希望这篇文章能帮助您更好地理解和使用Kubernetes及kubeadm。如果有任何疑问或建议,欢迎在下方留言交流!