微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes)-kubernetes/dashboard
本章介绍所需环境:ubuntu18.04,建立在上一篇微服务探索之路01篇已经安装了docker的基础上。
1 替换k8s镜像源为国内镜像
- 进入目录
cd /etc/apt/sources.list.d

- 编辑文件
vim kubernetes.list执行之后打开一个编辑界面按字母i进入编辑状态复制deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main放进去,按esc再:wq保存

- 执行
apt-get update

如果出现如上图提示,需要先执行
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FEEA9169307EA071key后面那一串就是截图里的那一串根据系统提示修改为对应的就行,执行完如下图

这时候再重新执行apt-get update就成功了
- 执行
apt upgrade遇到选择看不懂就选择y,看的懂就按照自己想要的选择遇到选择直接默认ok下一步,最后执行完成表示镜像已经替换为国内镜像,并且所有源都更新为新版本
2 安装k8s
执行
apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated执行
kubeadm version查看版本号
3 安装镜像包
- 需要安装多个镜像所有写一个脚本来完成
1.先退到最外层目录下或者去自己知道的目录(这边直接退到最外层目录执行cd回车)
2.创建k8spull.sh内容为(文件创建和编辑方法可以百度vim用法)
for i in `kubeadm config images list`; do
imageName=${i#k8s.gcr.io/}
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done;
3.执行chmod +x k8spull.sh给脚本文件赋予权限
4.执行脚本sh k8spull.sh
5.执行docker images,再执行kubeadm config images list对比镜像是否全都加载成功

这边发现少了一个coredns,可以手动拉取试试(执行docker pull registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.6)

尝试后如上图发现阿里云镜像里面没有这个版本号也不知道去哪查看最新的版本,所以这边选择使用dockerhub里的最新版本1.8.3执行
docker pull rancher/coredns-coredns:1.8.3
,然后更改镜像名执行
docker tag rancher/coredns-coredns:1.8.3 k8s.gcr.io/coredns/coredns:v1.8.6
,最后删除原始镜像执行
docker rmi rancher/coredns-coredns:1.8.3
重新执行docker images检查镜像是否已经成功,如下图表示成功

4 初始化kubeadm
- 执行
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU
5 设置网络插件
1.设置环境变量执行export KUBECONFIG=/etc/kubernetes/admin.conf,执行完这里顺便把环境变量加到系统配置里防止下次重启服务器的时候没有变量,具体操作如下
vim /etc/profile打开之后在底部添加export KUBECONFIG=/etc/kubernetes/admin.conf,添加之后保存退出文件,然后执行source /etc/profile使其生效。
2.编写yml进行资源配置,这里可以直接使用网络上别人写好的yml文件直接用以下命令和地址即可
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
需特别注意:
如果执行上一行命令报错,内容包含did you specify the right host or port,这时候是因为kubelet没有正常启动,可以执行journalctl -xefu kubelet查看具体的错误日志,本次配置遇到的错误是docker和kubelet的驱动程序不同具体如图

解决方法:
(1).查看文件/var/lib/kubelet/config.yaml里的驱动

(2).把docker的改为跟这个一样的方式
编辑文件/etc/docker/daemon.json,如果文件本身有内容那就在对象内添加一行"exec-opts": ["native.cgroupdriver=systemd"],如果空文件那就要用大括号包起来{"exec-opts": ["native.cgroupdriver=systemd"]},然后保存退出文件。
(3)重启服务,执行以下三个命令
systemctl daemon-reloadsystemctl restart dockersystemctl restart kubelet
运行成功,出现下类似图

3.执行kubectl get nodes查看如果出现如下图内容表示已经成功部署可以进行增加和移除Node(节点)

6 安装面板
1.下载yaml文件wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
版本号可以去github上选择tag查看最新的或者选择合适自己的
2.打开yaml文件查看镜像然后用docker拉取镜像,搜索文件中image关键字可以找到以下两个相关的镜像,版本不一样版本号也会对应改变
镜像1命令:docker pull kubernetesui/dashboard:v2.4.0
镜像2命令:docker pull kubernetesui/metrics-scraper:v1.0.7
3.修改yaml文件将访问方式改为NodePort,如下图

改完保存退出,然后执行kubectl apply -f recommended.yaml
以上执行完之后执行这个看一下是否有绑定好端口号kubectl get svc --namespace=kubernetes-dashboard,结果如下图表示成功

7 配置Token
1.打开https://ip:端口号,会出现如下界面这时不要继续操作界面,需要先配置Token

2.创建文件vim dashboard-admin.yaml,文件内容为

apiVersion: v1
kind: ServiceAccount
metadata:
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
3.运行刚才创建的yaml文件直接为 Dashboard 赋予 Admin 的权限kubectl create -f dashboard-admin.yaml
4.查找创建好的token,先执行kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}',出现如下图

然后根据结果里返回的名称执行下面的命令kubectl -n kubernetes-dashboard describe secret kubernetes-dashboard-admin-token-g7vxn这命令里的kubernetes-dashboard-admin-token-g7vxn是上一个命令返回的要根据自己得到的替换

5.复制token然后登陆

登陆之后可以切换命名空间查看相关的内容

本章结束,下一章详解如何将自己的项目部署至k8s
以下为遇到错误的记录和解决方案如下:
1.遇到kube-flannel无限自动重启,先删除它,等会重新安装执行删除命令
kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
删除残留文件rm -rf /var/lib/cni/,rm -f /etc/cni/net.d/*
2.遇到一直循环创建k8s-pod,这里不知道怎么回事直接重置所有配置,执行命令kubeadm reset之后重新从第4步初始化环境开始,先给docker设置一下国内镜像这一步之前没操作过;打开文件vim /etc/docker/daemon.json,添加"registry-mirrors":[ "https://阿里云加速的id.mirror.aliyuncs.com" ],这个加速id参考第一篇有说怎么拿到。
下面开始重新运行:
(1)重新初始化kubeadm,直接照着上面的第4步
(2)重新安装kube-flannel网络环境,为了防止一直自动重启,我们这边先下载yml做完修改再执行
下载,找个路径然后执行wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
然后打开vim kube-flannel.yml修改内存50mi为200mi

改完保存之后给文件添加可执行权限chmod +x filename,最后执行kubectl apply -f kube-flannel.yml
最后查看是否运行成功如下图

图上用到的命令kubectl get pods -o wide --all-namespaces,kubectl get nodes
微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes)-kubernetes/dashboard的更多相关文章
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...
- 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通
本文介绍从创建 net6.0 项目运行在 windows 开发环境的 docker 然后正式部署至 liunx 服务器. 1 windows10 安装 docker 下载docker-desktop ...
- 微服务探索之路04篇k8s增加子节点,metrics资源监控,ingress-nginx域名配置及https配置
1 k8s增加子节点 1.1 子节点服务器安装docker,使用脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror A ...
- 基于容器微服务的PaaS云平台设计(二)通过kubernetes实现微服务容器管理
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 上一章描述了基于spring cloud的微服务实例(实 ...
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
随机推荐
- Nacos——注册中心
目录 1.什么是nacos 2.使用--依赖+配置文件 3.Nacos服务分级存储模型 4.服务跨集群调用问题 5.服务集群属性--配置服务集群 6. Nacos-NacosRule负载均衡 7.根据 ...
- 几个主流TCP/IP协议栈介绍
我们知道TCP IP协议栈内包括了诸多协议.那么对于这当中的协议的功能以及作用,我们来具体了解一下吧.现在让我们做一个盘点,帮助大家总结一下,还望对大家能够有所帮助. 1.BSD TCP IP协议栈 ...
- 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(2) - 在Flash调试及离线启动
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板在Flash调试与离线启动. 腾讯 TencentOS 团队于 ...
- 【LeetCode】74. Search a 2D Matrix 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 左下或者右上开始查找 顺序查找 库函数 日期 题目地 ...
- The Best Path
The Best Path Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- 自我学习与理解:keras框架下的深度学习(三)回归问题
本文主要是使用keras对其有的波士顿房价数据集做一个回归预测,其代码架构与之前一样(都只是使用多层感知机):数据的预处理.搭建网络框架.编译.循环训练以及测试训练的网络模型.其中除了数据预处理与之前 ...
- java 堆、栈
堆: 1)Java的堆是一个运行时数据区,类的对象从堆中分配空间.这些对象通过new等指令建立,通过垃圾回收器来销毁. 2)堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它 ...
- ELBO surgery: yet another way to carve up the variational evidence lower bound
目录 概 主要内容 Evidence minus posterior KL Average negative energy plus entropy Average term-by-term reco ...
- 网易云 微专业C++系统工程师
网易云 微专业C++系统工程师 一.学前基础 1.曾经学过某种编程语言(C语言最佳) 2.了解基本的变量.类型.作用域.循环和控制流程:了解基本数据类型(整数.浮点.字符串.数组等) 3.知道如何编译 ...
- Spring企业级程序设计 • 【第1章 Spring之旅】
全部章节 >>>> 本章目录 1.1 Spring框架基础 1.1.1 Spring特点及体系结构 1.1.1 Spring的体系结构 1.1.2 使用Eclipse搭建 ...