Kubernetes 文档入口
本目录提供从零到一的 Kubernetes 集群安装与常用脚本。建议:先阅读本 README 的概览与快速开始,再按需查看详细版文档。
文档索引
- Kubernetes 安装:
k8s-installtion.md(分步说明、完整命令与排错) - Istio 配置:
istio-hostnetwork-notes.md(将 Istio IngressGateway 切换为 hostNetwork 模式指南)
快速开始
在 Master 节点:
./k8s-step1-prepare-env.sh
./k8s-step2-install-containerd.sh
./k8s-step3-install-components.sh
./k8s-step4-init-cluster.sh
./k8s-step5-install-flannel.sh
在工作节点加入(参考 node-join-command.txt 或运行第 6 步脚本):
./k8s-step6-join-nodes.sh
验证:
kubectl get nodes -o wide
kubectl get pods -A
脚本总览
-
安装流程
k8s-step1-prepare-env.sh:环境准备(关闭 swap、内核参数、基础工具)k8s-step2-install-containerd.sh:安装与配置 containerdk8s-step3-install-components.sh:安装 kubeadm/kubelet/kubectlk8s-step4-init-cluster.sh:Master 初始化集群k8s-step5-install-flannel.sh:安装 Flannel CNI(或直接kubectl apply -f kube-flannel.yml)k8s-step6-join-nodes.sh:节点加入集群(使用node-join-command.txt)k8s-install-all.sh:一键顺序执行上述步骤(熟悉流程后使用)
-
网络与工具
setup-master-gateway.sh:Master 网关/NAT 示例配置(按需修改)setup-node1.sh、setup-node2.sh:节点路由示例k8s-image-pull-and-import.sh:镜像预拉取/导入(离线或网络慢场景)install-kubectl-nodes.sh:为其他节点安装与配置 kubectl
常见问题
- 节点
NotReady:检查 CNI 是否就绪(kubectl -n kube-flannel get pods)、确认已swapoff -a,并查看journalctl -u kubelet -f。 - 无法拉取镜像:检查网络/镜像源,可用
k8s-image-pull-and-import.sh预拉取。 kubectl连接异常:确认$HOME/.kube/config配置与权限。
Istio 服务网格配置
本目录的 Kubernetes 集群安装完成后,如需使用 Istio 作为服务网格和入口网关,请参考:
Istio hostNetwork 模式配置
适用场景:
- 只有 master 节点有公网 IP
- 需要 Istio IngressGateway 替代 nginx-ingress-controller
- 需要 Istio 直接监听宿主机的 80/443 端口
详细指南:请参阅 istio-hostnetwork-notes.md
快速概览:
- 安装 Istio(使用
istioctl install或 Helm) - 按照指南将
istio-ingressgateway切换为 hostNetwork 模式 - 配置 Gateway 和 VirtualService 进行流量路由
- 配置 TLS 证书 Secret
注意事项:
- 迁移前确保停止 nginx 或其他占用 80/443 的服务
- 需要将 TLS 证书 Secret 复制到
istio-system命名空间 - hostNetwork 模式下,Service 类型可以是
ClusterIP或LoadBalancer
其他 Istio 文档
- Istio 官方文档:https://istio.io/latest/docs/
- Istio 安装指南:https://istio.io/latest/docs/setup/install/