在国内环境下安装Kubernetes(K8S),我们可以使用kubeadm进行快速安装。kubeadm是官方提供的一种用于初始化和设置Kubernetes集群的工具,它可以简化Kubernetes集群的部署过程。本文将介绍如何在国内环境下使用kubeadm进行Kubernetes安装。

### 一、安装Docker

在安装Kubernetes之前,我们需要先安装Docker。

1. 首先,更新apt包列表:

```shell
sudo apt update
```

2. 安装Docker依赖的软件包:

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

3. 添加Docker的官方GPG密钥:

```shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

4. 添加Docker的源:

```shell
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

5. 安装Docker引擎:

```shell
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
```

6. 验证Docker是否安装成功:

```shell
sudo docker run hello-world
```

如果看到输出的Hello from Docker!说明Docker安装成功。

### 二、安装Kubernetes

完成Docker的安装后,我们可以开始安装Kubernetes。

1. 首先,添加Kubernetes的官方GPG密钥:

```shell
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
```

2. 添加Kubernetes的源:

```shell
sudo apt-add-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
```

3. 安装Kubernetes:

```shell
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
```

4. 配置kubeadm使用国内镜像(可选):

```shell
sudo kubeadm config images pull --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
```

这一步是为了加速Kubernetes镜像的下载,如果不执行这一步,kubeadm会默认从国外的镜像库下载。

5. 初始化Kubernetes集群:

```shell
sudo kubeadm init --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
```

这一步会根据默认配置初始化一个单节点的Kubernetes集群,并输出一个加入集群的命令,类似于:

```shell
kubeadm join 192.168.0.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
```

6. 配置kubectl:

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

7. 安装网络插件(可选):

```shell
kubectl apply -f https://docs.projectcalico.org/v3.19/manifests/calico.yaml
```

这里我们使用Calico作为网络插件,如果你有其他的网络插件需求,可以更换为其他插件的地址。

至此,Kubernetes的安装就完成了。

### 三、加入节点

如果你有其他的节点需要加入到Kubernetes集群中,可以使用之前输出的加入集群的命令:

```shell
kubeadm join 192.168.0.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
```

在其他节点上执行这个命令,就可以将节点加入到集群中。

### 四、使用Kubernetes

Kubernetes安装完成后,我们可以使用kubectl命令行工具管理集群。

1. 查看集群节点:

```shell
kubectl get nodes
```

2. 部署一个示例应用:

```shell
kubectl create deployment nginx --image=nginx
```

3. 暴露这个应用的服务:

```shell
kubectl expose deployment nginx --port=80 --type=NodePort
```

4. 查看服务:

```shell
kubectl get services
```

你会看到输出中有一个类型为NodePort的服务,表示nginx应用已经通过NodePort方式暴露出来了。

### 五、总结

通过以上步骤,我们成功地在国内环境下安装了Kubernetes,并部署了一个简单的应用。希望这篇文章对你理解Kubernetes的安装方法有所帮助。如果你有任何问题,请随时向我提问。