# 实现内网k8s集群

## 介绍
在企业中,搭建内网k8s集群是非常常见的需求,能够提供更高的安全性和稳定性。本文将介绍如何实现内网k8s集群,适合刚入行的小白开发者学习。

## 流程概述
搭建内网k8s集群大致分为以下几个步骤:

| 步骤 | 说明 |
|------------------------------------------|------------------------------|
| 1. 准备基础环境 | 安装Docker、kubeadm等必备工具 |
| 2. 初始化Master节点 | 使用kubeadm初始化Master节点 |
| 3. 将Node节点加入集群 | 使用kubeadm将Node节点加入集群 |
| 4. 部署网络插件 | 部署网络插件,确保节点之间能够互相通信 |
| 5. 部署存储插件 | 部署存储插件,为Pod提供持久化存储 |

## 详细步骤

### 步骤1:准备基础环境
首先安装Docker、kubeadm、kubelet和kubectl等必备工具,确保网络畅通,Master节点可访问Node节点。

### 步骤2:初始化Master节点
在Master节点执行以下命令初始化集群:
```bash
kubeadm init --apiserver-advertise-address= --pod-network-cidr=
```
其中,
- `--apiserver-advertise-address=`:指定Master节点的IP地址;
- `--pod-network-cidr=`:指定Pod的网络地址,例如`10.244.0.0/16`。

### 步骤3:将Node节点加入集群
在Node节点执行以下命令将Node节点加入集群:
```bash
kubeadm join : --token --discovery-token-ca-cert-hash sha256:
```
其中,
- ``:Master节点的IP地址;
- ``:Master节点的端口号,默认为`6443`;
- ``:加入集群的Token值;
- ``:CA证书的哈希值。

### 步骤4:部署网络插件
在Master节点上执行以下命令部署网络插件(以Calico为例):
```bash
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
```

### 步骤5:部署存储插件
根据需求选择合适的存储插件,如Rook、Longhorn等,并根据官方文档进行部署和配置。

## 总结
通过以上步骤,我们成功搭建了内网k8s集群,实现了Master节点与Node节点的连接、网络插件和存储插件的部署。在实际应用中,还需要根据需求进行调整和优化,以提供更高的性能和安全性。

希望本文对刚入行的小白开发者有所帮助,如果有任何疑问或问题,欢迎留言讨论,互相学习、进步!