K8s集群搭建方式主要有以下几种:
1. 使用kubeadm搭建K8s集群
2. 使用minikube搭建单机K8s集群
3. 使用kubespray搭建大规模K8s集群
下面我将依次介绍这三种搭建方式的步骤和对应的代码示例。
#### 1. 使用kubeadm搭建K8s集群
kubeadm是一个用于快速部署Kubernetes集群的工具。它使用简单,易于理解,并且是官方推荐的搭建K8s集群的方式。
1. 安装Docker和kubeadm
```shell
# 安装Docker
$ sudo apt-get update
$ sudo apt-get install 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 -
$ echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl
```
2. 初始化Master节点
```shell
$ sudo kubeadm init
```
3. 部署网络插件
```shell
$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```
4. 加入Worker节点
```shell
# 在Master节点执行以下命令
$ sudo kubeadm token create --print-join-command
# 在Worker节点执行Master节点返回的命令
```
#### 2. 使用minikube搭建单机K8s集群
minikube是一个用于在本地机器上运行Kubernetes的工具。它提供了简单易用的命令行接口,适用于开发和测试环境。
1. 安装minikube
```shell
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
$ sudo install minikube /usr/local/bin/
```
2. 启动minikube
```shell
$ minikube start
```
3. 验证集群状态
```shell
$ kubectl cluster-info
```
#### 3. 使用kubespray搭建大规模K8s集群
kubespray是一个用于部署生产就绪的Kubernetes集群的开源工具。它支持大规模集群,并提供了灵活的配置选项。
1. 克隆kubespray代码库
```shell
$ git clone https://github.com/kubernetes-sigs/kubespray.git
```
2. 安装依赖
```shell
$ pip install -r requirements.txt
```
3. 配置Inventory文件
```shell
$ cp -rfp inventory/sample inventory/mycluster
$ declare -a IPS=(10.0.0.1 10.0.0.2 10.0.0.3) # 替换为实际的IP地址
$ CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
```
4. 部署K8s集群
```shell
$ ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
```
以上介绍了三种搭建K8s集群的方式,并给出了相应的代码示例。根据实际需求选择适合自己的方式进行部署,开启容器化部署的新篇章!