头图

麒麟操作系统 (kylinos) 从入门到精通 - 研发环境 - 第四十八篇 kubernetes开发环境安装

0.基础环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2203)

关键词:
信创,麒麟系统,linux,c++,c,飞腾,arm,kubernetes,k8s,minikube,microk8s

1.背景

研发人员有时候会有k8s环境构建的需求,在x86上我们可以通过minikube,rancher,kubesphere等来构建这个环境。但考虑到飞腾处理器目前的处理速度,我们更多的只是构建起单机试验环境,minikube或microk8s是较好的选择,也好入手快速构建一个k8s集群单机版。

2.minikube安装

sudo apt install docker-compose docker-doc docker.io docker-registry #安装docker相关组件
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64 #下载二进制包
sudo install minikube-linux-arm64 /usr/local/bin/minikube #安装
sudo usermod -aG docker $USER && newgrp docker #将当前用户加入docker用户组

3.启动minikube

3.1 保证gcr.io可以访问的准备工作

如果有其他方式也可以,能访问就行

sudo apt-get install proxychains 
sudo vim /etc/proxychains.conf

图片.png
使用proxychains bash #使bash中所有命令都走代理 

minikube start #会拉包,需要能够访问image 'gcr.io/k8s-minikube/kicbase:v0.0.37' locally 详细可参考本专栏命令行代理上网那一篇文章

3.2 错误处理

执行minikube start可能出现错误一:docker: failed to register layer: ApplyLayer exit status 1 stdout: stderr: archive/tar: invalid tar header.
解决办法,参考本站文章https://segmentfault.com/a/1190000042634466
解决方案一,移动unpigz可执行文件位置使其不解压
mv /usr/bin/unpigz /usr/bin/unpigz.bak
再重试minikube start
图片.png
接下来,就可以参照https://minikube.sigs.k8s.io/docs/start/进行集群操作,部署应用了。
图片.png
执行 minikube kubectl -- get po -A 后效果
图片.png
执行alias kubectl="minikube kubectl --" 建立别名,特别说明:如果没有建立别名,minikube kubectl -f执行会报-f出错。

4.microk8s安装

注意:如果遇到拉包和一些相关的问题,请参考minikube安装过程中的解决办法
microk8s安方指南链接:https://microk8s.io/#install-microk8s
1.安装microk8s

sudo snap install microk8s --classic #提前准备好snap的基础环境,可参考综合篇中相关内容

图片.png
2.将相关的用户加入组和赋权

sudo usermod -a -G microk8s long #long需要改成你当前的用户名,本命令中是我的
sudo chown -R long ~/.kube #long需要改成你当前的用户名,本命令中是我的
newgrp microk8s #使组信息生效,重启也可以。

图片.png
3.检测是否成功

microk8s status --wait-ready

图片.png
4.接下来的操作就是microk8s的操作了,具体使用参见其官方文档即可。
图片.png

5.rancher的安装与使用(用于管理k8s)

大家也可以选别的管理员,本文只对rancher做一个示例
最简单的方式:

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:latest 

图片.png
完成后,在浏览器中输入https://localhost 访问
图片.png
我们以docker方式运行的,所以通过下面的方式获取默认的密码

docker logs  container-id  2>&1 | grep "Bootstrap Password:" #container-id通过 docker container list | grep "rancher" 获取

登录成功后,根据提示更改密码
图片.png
接下来导入minikube的k8s集群即可,具体操作见
图片.png
类型选generic
图片.png
图片.png
选择在命令行中执行

curl --insecure -sfL https://localhost/v3/import/hpwr9psxzhcmt5qwlqjk96v5ntsktkhcttzk5f6qvckr2sh8kdhtfg_c-m-r6gzn8dj.yaml | kubectl apply -f -

图片.png
执行结果见
图片.png
安装成功,点击浏览器的刷新按钮
图片.png
如果还是Pending状态,就耐心等待一段时间,再刷新尝试。

6.写在最后

搭建过程中,遇到不少问题。这是x86_64处理器平台所没有的,但经过各方面找资料和一步步排错,按照教程走可以很快搭起来,过程中会上网拉docker镜像,具体用时取决于大家所处的网络速度。其他就是还需要访问gcr.io,这个可能麻烦一点,除了本文的方法外,还可以找找goproxy.io的资料,看是否有更简洁的办法。

6.1 gcr.io镜像加速设置(未测试,仅供参考)

参考:https://cloud.tencent.com/developer/article/1945836的方法
解决方案:镜像加速器

针对 Docker Hub ,Docker 官方和国内各大云服务商均提供了 Docker 镜像加速服务。

你只需要简单配置一下(以 Linux 为例):

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["镜像加速器"]
}
EOF

sudo systemctl daemon-reload
sudo service docker restart

图片.png
此办法也只能针对 docker.io

祝女同志们节日快乐

麒麟系统专栏:
地址一:https://segmentfault.com/blog/kylinos
邮箱:1179611323@qq.com
群:662512340
github:https://github.com/xiaohelong
twitter:https://twitter.com/xiaohelong
发行日志:
20230308 12:20 首发
20230309 12:20 补充microk8s环境搭建信息
20230309 15:30 补充Rancher的安装信息


麒麟操作系统
频繁更新,为大家提供麒麟系统在飞腾处理器上使用教程(相类似的版本可参考)。从场景出发,每一篇为一个...

码农极客,2004年接触Linux世界。爱技术的IT的男

59 声望
139 粉丝
0 条评论
推荐阅读
麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第五十六篇 PDF阅读与批注
类别:笔记本型号:中国长城 NF14C硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2303) 关键词:信创,麒麟系统,linux,c++,c,飞腾,arm,aarch,arm64,pdf,foxit,okular,acrobat pro

码上世界1阅读 705

封面图
终于卷完了!Redis 打怪升级进阶成神之路(2023 最新版)!
是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。专注于key-value查询的redis、memcached、ttserver。

民工哥13阅读 1.1k

封面图
花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥14阅读 2k

封面图
疫情已过,2023 我的前端面试记录
顺利入职。把我最近找工作的心得记录下来。工作交接确定 lastday整理手头工作,相关对接人、交接人放文档中工作交接过渡阶段。做好被咨询者,该拉人拉人,该拉群拉群平时沟通顺畅的同事如果没有 WX 可以加一个属...

linong11阅读 1.1k

思否 CTO 祁宁:社区问答是激荡高级智慧的头脑风暴
在祁宁家里,有一套完整的赛车模拟器,他甚至还请人到国外代购了最新的 VR 设备。作为沉浸式赛车游戏发烧友,除了享受速度与激情带来的愉悦感,祁宁在玩的过程中更多的是思考如何将技术能力进行产品化的问题。

万事ONES6阅读 13k评论 1

封面图
硬卷完了!MongoDB 打怪升级进阶成神之路( 2023 最新版 )!
前面我们学习:MySQL 打怪升级进阶成神之路、Redis 打怪升级进阶成神之路,然后我们还在继续 NoSQL 的卷王之路。从第一篇文章开始,我们逐步详细介绍了 MogoDB 基础概念、安装和最基本的CURD操作、索引和聚合、工...

民工哥7阅读 614

封面图
「刷起来」Go必看的进阶面试题详解
逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。

王中阳Go4阅读 1.9k评论 1

封面图

码农极客,2004年接触Linux世界。爱技术的IT的男

59 声望
139 粉丝
宣传栏