在使用Kubernetes (K8S) 部署AWS EC2主机上的网站时,首先需要了解整个流程。下面将通过表格展示整个过程的步骤,然后详细解释每一步需要做什么以及需要使用的代码示例。

### 流程步骤

| 步骤 | 操作 |
| ---- | ---- |
| 步骤一 | 创建EC2实例 |
| 步骤二 | 安装Docker和Kubernetes |
| 步骤三 | 创建Kubernetes Deployment |
| 步骤四 | 暴露Deployment为Service |
| 步骤五 | 使用AWS ELB负载均衡 |

### 步骤详解

#### 步骤一:创建EC2实例
在AWS控制台上创建一个EC2实例,选择适合你项目需求的实例类型、配置和存储。确保在安全组中打开HTTP端口。

#### 步骤二:安装Docker和Kubernetes
登录到EC2实例上,安装和配置Docker和Kubernetes。下面是安装Docker和Kubernetes的代码示例:

```bash
sudo yum update -y # 更新系统包
sudo amazon-linux-extras install docker # 安装Docker
sudo service docker start # 启动Docker服务
sudo usermod -a -G docker ec2-user # 将用户添加到Docker组
sudo systemctl enable docker # 设置Docker开机自启
sudo systemctl start docker # 启动Docker服务
sudo curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm # 下载Minikube
sudo rpm -ivh minikube-latest.x86_64.rpm # 安装Minikube
sudo minikube start --driver=none # 启动Minikube
```

#### 步骤三:创建Kubernetes Deployment
创建一个Kubernetes Deployment来部署你的网站应用程序。这里以部署一个简单的Nginx网站为例:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
```

#### 步骤四:暴露Deployment为Service
创建一个Kubernetes Service来暴露Deployment中的应用程序,使其可以从集群外部访问。这里创建一个NodePort类型的Service:

```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
```

#### 步骤五:使用AWS ELB负载均衡
最后,通过AWS Elastic Load Balancing (ELB)服务来实现负载均衡,将流量传递给Kubernetes集群中的不同节点。可以通过AWS控制台或CLI来设置ELB。

通过上述步骤,你可以在AWS EC2主机上部署你的网站,并利用Kubernetes来管理和扩展你的应用程序。希望这篇文章对你有所帮助,祝你顺利地将网站部署到AWS EC2上!