使用方法
本文章内容参考自:Kubernetes (K8s) 集群部署指南:从环境准备到应用部署
1. 环境准备
- 操作系统:所有节点需为 CentOS 7。
- 网络要求:所有节点需能相互通信,且能访问外网(或已配置镜像加速)。
- 脚本文件 :将三个文件放置在同一目录,例如
/opt/kubernetes
。
2. 下载或上传脚本
-
使用wget直接下载(在每个节点都执行)
请先执行 yum -y install wget
bash# 创建目录 sudo mkdir -p /opt/kubernetes # 切换目录 cd /opt/kubernetes # 下载资源 wget https://gitee.com/xy12306/k8s/raw/master/URL/k8s_v2.6.tar # 解压资源 tar -xvf k8s_v2.6.tar
3. 执行脚本
-
打开master节点(在
/opt/kubernetes
文件夹下)bash# 赋予执行权限 chmod +x *.sh # Master节点 ./master.sh
-
打开node节点(在
/opt/kubernetes
文件夹下)bash# 赋予执行权限 chmod +x *.sh # Node节点 ./node.sh
master节点 输出示例:
按照以上格式复制后输入到Node节点即可成功加入集群。
验证集群状态
- 在主节点执行以下命令
csharp
# 查看节点状态
kubectl get nodes
# 查看 Pod 状态(确保 Calico 等组件正常)
kubectl get pods -n kube-system
- 如果 Token 过期的话:在主节点重新生成 Token:
lua
sudo kubeadm token create --print-identity
部署测试应用并访问
1. 部署一个简单的Nginx应用:
ini
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
2. 查看服务状态:
kubectl get services
kubectl get pods
kubectl get deployments
scss
[root@master ~] kubectl get svc nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx NodePort 10.111.140.102 <none> 80:30433/TCP 5
您已经成功创建了一个 Nginx 的 Deployment 并将其暴露为
NodePort
类型的 Service。根据您的输出,Nginx 服务的NodePort
是30433
,这意味着您可以通过集群中任何节点的 IP
地址和端口30433
访问 Nginx。
3. 访问 Nginx
使用查看节点的 IP 地址kubectl get nodes -o wide
和 NodePort
端口(30433
)访问 Nginx。您可以通过以下方式访问:
- 通过浏览器访问 :在浏览器地址栏中输入
http://<节点IP>:30433
arduino
http://192.168.55.161:30433
- 通过 **
curl
**命令在虚拟机中访问:
arduino
curl http://192.168.55.161:30433
安装 Kubernetes Dashboard 可视化工具
bash
# 安装 Kubernetes Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
# 检查是否正常运行,需状态全都为running
kubectl get pods -n kubernetes-dashboard
- 创建 dashboard-admin 用户并授权
lua
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
创建了一个名为
dashboard-admin
的 ServiceAccount,位于kubernetes-dashboard
命名空间。创建了一个名为
dashboard-admin
的 ClusterRoleBinding,将dashboard-admin
ServiceAccount 绑定到cluster-admin
角色。
- 获取用户 Token
lua
kubectl create token dashboard-admin -n kubernetes-dashboard
- 修改 Service 类型为 NodePort
css
kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}'
- 查看 Service 的 NodePort:
arduino
kubectl get svc -n kubernetes-dashboard
-
访问 Dashboard
- 通过
https://<节点IP>:30375
访问 Dashboard。
- 通过
注意:请将 <节点IP>
替换为实际的 Kubernetes 节点 IP 地址。
本文章仅供参考,适用于初学者
相关文章: