# http_server_k8s **Repository Path**: chick-lee/http_server_k8s ## Basic Information - **Project Name**: http_server_k8s - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-11 - **Last Updated**: 2025-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1.编写 HTTP 服务器并制成容器化镜像 - [X] 使用自己的技术栈语言编写 HTTP 服务器,该程序能够读取外挂文件中设置的参数(如端口)。 - [x] 日志打印请求的 IP 地址和 header。 - [x] Dockerfile 使用多段构建。 - [x] 提供健康检查接口。 - [x] 程序读取数据库中的数据并返回。 验证命令: ```bash # 检查健康检查接口 curl -k -H "Host: ${DOMAIN}" https://${NODE_IP}:${NODEPORT}/health # 检查数据接口 curl -k -H "Host: ${DOMAIN}" https://${NODE_IP}:${NODEPORT}/data # 查看容器日志 kubectl logs -n lizc121-ns -l app=http-server ``` ## 2.将 HTTP 服务器以工作负载的形式部署到集群环境 - [x] 调整工作负载的副本数为 3。 - [x] 完成容器的存活性检查和可读性检查配置。 - [x] 完成容器的资源需求 QoS 保证。 - [x] 完成容器实例数根据 CPU 压力的自动伸缩设置。 验证命令: ```bash # 检查部署状态和副本数 kubectl get deployment http-server -n lizc121-ns kubectl get pods -n lizc121-ns -l app=http-server # 检查健康检查配置 kubectl describe deployment http-server -n lizc121-ns | grep -A 10 "Liveness" kubectl describe deployment http-server -n lizc121-ns | grep -A 10 "Readiness" # 检查 QoS 配置 kubectl get pods -n lizc121-ns -l app=http-server -o custom-columns=NAME:.metadata.name,QoS:.status.qosClass # 检查 HPA 配置 kubectl get hpa -n lizc121-ns kubectl describe hpa http-server-hpa -n lizc121-ns ``` ## 3.完成服务应用的暴露 - [x] 使用 NodePort 类型的 Service 进行暴露。 - [x] 通过 Ingress 暴露业务 Service。 - [x] 自签名证书使 Ingress 提供 HTTPS 访问。 验证命令: ```bash # 检查 NodePort 服务 kubectl get svc http-server -n lizc121-ns # 检查 Ingress 配置 kubectl get ingress -n lizc121-ns # 测试 API 访问 ## 健康检查接口 curl -k -H "Host: ${DOMAIN}" https://${NODE_IP}:${NODEPORT}/health ## 数据接口 curl -k -H "Host: ${DOMAIN}" https://${NODE_IP}:${NODEPORT}/data # 检查 HTTPS 配置 kubectl get secret http-server-tls -n lizc121-ns ```