news 2026/9/5 14:56:57

kubeadm搭建k8s v1.13.3及部署dashboard

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kubeadm搭建k8s v1.13.3及部署dashboard

PS:由于部署这套环境用到的镜像和相关文件难以下载,特上传到百度网盘,供大家使用!

链接:https://pan.baidu.com/s/1Zrmuf0ddUQlpw6ErmRoLow 提取码:t9pl

一、环境说明

平台:OpenStack
操作系统:CentOS 7.2
硬件配置:2C4G50G
k8s-master:172.16.31.222
k8s-node1:172.16.31.212
k8s-node2:172.16.31.216

二、环境准备【所有机器都做】

1.关闭防火墙

2.禁用SELinux

3.关闭Swap

swapoff -a (临时关闭) vim /etc/fstab (注释或删除swap行,永久关闭)

4.添加主机名与IP对应关系

vim /etc/hosts

172.16.31.222 k8s-master 172.16.31.212 k8s-node1 172.16.31.216 k8s-node2

通过hostnamectl set-hostname 主机名来修改各节点的主机名

5.将桥接的IPv4流量传递到iptables链【CentOS必须做这一步】

cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sysctl --system

6.安装docker-ce

如已安装docker,先卸载

CentOS完整卸载Docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum install docker-ce-18.06.1.ce-3.el7 -y systemctl enable docker systemctl start docker docker -v

7.添加阿里YUM软件源,安装kubeadm、kubelet

cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum clean all yum -y install kubelet-1.13.3 yum -y install kubeadm-1.13.3 yum -y install kubectl-1.13.3 systemctl enable kubelet

三、部署Kubernetes Master

1.初始化集群【在管理节点操作】

kubeadm init \ --apiserver-advertise-address=172.16.31.222 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.13.3 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16

敲完回车后会去网上拉取镜像,需要等待……
如果配置错误,可以使用kubeadm reset重置
解释:

--apiserver-advertise-address #指定集群通信IP,通常为服务器的内网IP --image-repository #指定镜像源为阿里源 --kubernetes-version #指定版本 --service-cidr #负载均衡的虚拟IP --pod-network-cidr #容器使用的IP地址,会分配到每个pod

重要:把token值保留下来,节点加入集群需要

2.使用kubectl工具

mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config kubectl get node #发现状态为不可读,还需配置网络

3.安装Pod网络插件

yum -y install ca-certificates #该证书用于从官网下载kube-flannel.yml wget https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

修改kube-flannel.yml

vim kube-flannel.yml

把106行和120行的镜像名字改为:quay.io/coreos/flannel:v0.11.0-amd64,在125行下面添加- --iface=eth0,解决多块网卡启动失败的问题

启动flannel

docker pull quay.io/coreos/flannel:v0.11.0-amd64 #手动拉取镜像 kubectl apply -f kube-flannel.yml kubectl get pods -n kube-system #查看 kube-system命名空间下的pod

可以看到所有镜像的状态为Running,master的状态也变为Ready

PS:删除flannel的命令kubectl delete -f kube-flannel.yml

四、将节点加入集群

1.把flannel的镜像导入到两台节点机器上

docker save quay.io/coreos/flannel:v0.11.0-amd64 > flannel.tar scp flannel.tar k8s-node1:. scp flannel.tar k8s-node2:.

2.节点机器导入flannel镜像

docker load -i flannel.tar

3.节点加入集群

kubeadm join 172.16.31.222:6443 --token t4wyos.j87convvh1y7bbvp --discovery-token-ca-cert-hash sha256:1ead7092121d6bc649fffcc2019b0880782c639a5e9f3b5e531f92487875cdef --node-name k8s-node1 kubeadm join 172.16.31.222:6443 --token t4wyos.j87convvh1y7bbvp --discovery-token-ca-cert-hash sha256:1ead7092121d6bc649fffcc2019b0880782c639a5e9f3b5e531f92487875cdef --node-name k8s-node2

说明:–node-name指定该节点在集群中的名字

4.master上查看集群

五、测试kubernetes集群

kubectl create deployment nginx --image=nginx #会去初始化指定的镜像仓库拉取nginx镜像,需要等待 kubectl expose deployment nginx --port=80 --type=NodePort #声明内部通信端口为80,外部以节点IP加端口访问 kubectl get pods,svc -o wide #查看详细信息

可以看到nginx安装到了k8s-node1节点上,外部访问端口为32458

去k8s-node1机器上查看有nginx镜像

并且运行了一个nginx容器

浏览器访问验证(从集群中的任意一个节点都可以访问)

六、安装Dashboard

1.下载recommended.yaml

vim /etc/hosts,添加如下内容:

# GitHub Start 192.30.253.112 github.com 192.30.253.119 gist.github.com 151.101.100.133 assets-cdn.github.com 151.101.100.133 raw.githubusercontent.com 151.101.100.133 gist.githubusercontent.com 151.101.100.133 cloud.githubusercontent.com 151.101.100.133 camo.githubusercontent.com 151.101.100.133 avatars0.githubusercontent.com 151.101.100.133 avatars1.githubusercontent.com 151.101.100.133 avatars2.githubusercontent.com 151.101.100.133 avatars3.githubusercontent.com 151.101.100.133 avatars4.githubusercontent.com 151.101.100.133 avatars5.githubusercontent.com 151.101.100.133 avatars6.githubusercontent.com 151.101.100.133 avatars7.githubusercontent.com 151.101.100.133 avatars8.githubusercontent.com # GitHub End
curl -kfLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta1/aio/deploy/recommended.yaml --no-check-certificate

2.修改recommended.yaml

将命名空间改为默认的kube-system

sed -i '/namespace/ s/kubernetes-dashboard/kube-system/g' recommended.yaml

vim recommended.yaml
添加40行和44行的内容

type: NodePort nodePort: 30001

3.启动kubernetes-dashboard

docker pull kubernetesui/dashboard:v2.0.0-beta1 kubectl apply -f recommended.yaml kubectl get pods,svc -n kube-system

4.访问kubernetes-dashboard

https://172.16.31.222:30001

5.使用token访问,创建SA并绑定默认cluster-admin管理员集群角色

创建管理员用户

kubectl create serviceaccount dashboard-admin -n kube-system kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

获取token值

kubectl get secret -n kube-system |grep dashboard-admin #查找管理员用户的token名字

kubectl describe secret dashboard-admin-token-vmgpb -n kube-system


将token后面的值复制到登录界面

登录成功,发现有个服务有问题,未完待续……

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 14:50:54

MODBUS协议调试实战:从帧格式到CRC校验的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 14:48:38

STM32项目实战:三大典型坑及底层排查思路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 14:48:22

Spring Boot 3.4.1+Vue校园招聘系统全栈开发实战与架构解析

简介&#xff1a;本资源是一套面向计算机专业本科生与毕业设计学习者的校园求职招聘系统完整实现方案&#xff0c;基于Spring Boot 3.4.1与Vue技术栈&#xff0c;采用前后端分离架构&#xff0c;精准覆盖校园场景下的用户管理、职位发布、简历投递、面试安排及招聘后台等核心业…

作者头像 李华
网站建设 2026/9/5 14:47:38

STM32C5轮询读取LSM6D3TR-C陀螺仪数据:从寄存器配置到dps换算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 14:46:26

Matlab实现机械臂RRT避障轨迹规划的工程落地要点

简介&#xff1a;本资源是一套面向计算机科学、应用数学及电子工程等专业学习者与研究者的机械臂避障轨迹规划实践方案&#xff0c;聚焦快速扩展随机树&#xff08;RRT&#xff09;及其改进算法&#xff08;如Bi-RRT、IB-RRT&#xff09;在MATLAB平台上的完整实现&#xff0c;适…

作者头像 李华