当前位置:网站首页>说了半天跨平台,今儿咱就来跨跨!(完结篇)——Kubenetes上手实践
说了半天跨平台,今儿咱就来跨跨!(完结篇)——Kubenetes上手实践
2022-08-09 17:18:00 【InfoQ】
两句闲言
几片碎语
准备工作
故事该从哪里说起呢?
先试着搭个开发环境吧
基本情况

准备工作
启用wsl2

# 在powershell或者命令提示符终端中输入该命令即可
wsl.exe –set-default-version 2
wsl -l -v

安装合适的Ubuntu发行版

# 更新可用软件包的存储库和列表
sudo apt update
# 根据安装的软件包更新系统 > “-y” 将自动批准更改
sudo apt upgrade -y

安装Docker Desktop

启动wsl集成


sudo apt upgrade -y

*一点额外操作
"registry-mirrors": [
"https://{系统分配的前缀}.mirror.aliyuncs.com"
]

创建集群
kind还是minikube?
- 安装,这个没什么可说的,在wsl中安装minikube还是很流畅的,执行着几段命令就可以
# 下载
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# 使二进制可执行文件
chmod +x ./minikube
# 将二进制文件移动到可执行路径
sudo mv ./minikube /usr/local/bin/
- 启动
minikube start
用kind来创建一个集群
安装kind
# 下载
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64
# 使二进制可执行文件
chmod +x ./kind
# 将二进制文件移动到可执行路径
sudo mv ./kind /usr/local/bin/kind

创建一个单节点集群
# 创建一个单节点集群,名字叫wslkind
kind create cluster --name wslkind

利用Docker Desktop 创建集群(推荐)
开启kubernetes

打包应用镜像

编写k8s启动文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-cipapi
namespace: default
labels:
name: k8s-cipapi
spec:
replicas: 1
selector:
matchLabels:
name: k8s-cipapi
template:
metadata:
labels:
name: k8s-cipapi
spec:
containers:
- name: k8s-cipapi
image: tonydf/cipapi:v220804 # 镜像标识,如果本地不存在就会到dockerhub拉取,当然这个拉去规则是可以设置的。
ports:
- containerPort: 8002
---
apiVersion: v1
kind: Service
metadata:
name: k8s-cipapi
namespace: default
spec:
type: NodePort
selector:
name: k8s-cipapi
ports:
- port: 8002
targetPort: 80
- apiVersion,创建该对象所使用的 Kubernetes API 的版本
- kind,想要创建的对象的类别
- metadata,帮助唯一标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace
- spec,你所期望的该对象的状态
- ---,这三个线表示同级别内容的分割
启动集群
kubectl apply -f .\cipapi.yaml
kubectl get deployments


kubectl get services


数据验证
kubectl get svc



通过kubernetes-dashboard来检测集群状态
安装
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml
访问
# 要从本地工作站访问 Dashboard,必须为 Kubernetes 集群创建一个代理访问通道
kubectl proxy

创建rbac配置文件
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
kubectl apply -f dashboard-adminuser.yaml
kubectl -n kubernetes-dashboard create token admin-user


结束语
边栏推荐
- 从事软件测试一年,只会基础的功能测试,怎么进一步学习?
- 虚拟补丁备忘单
- Jenkins使用pipeline部署服务到远程服务器
- The senior told me that the MySQL of the big factory is connected through SSH
- Discuz! Forum program installation + template configuration tutorial
- 李乐园:iMetaLab Suite宏蛋白质组学数据分析与可视化(视频+PPT)
- [SUCTF 2019]CheckIn
- 基于AWS构建云上数仓第一步:云平台的基础概念
- JSDN博客系统
- 国能准能集团研发矿山数字孪生系统 填补国内采矿行业空白
猜你喜欢
一文深入了解 Hybrid 的实现原理
Li Yuanyuan: iMetaLab Suite metaproteomics data analysis and visualization (video + PPT)
对数学直观、感性的认知是理解数学、喜爱数学的必经之路,这本书做到了!
手写flexible.js的原理实现,我终于明白移动端多端适配
不是吧,连公司里的卷王写代码都复制粘贴,这合理?
EPIC是什么平台?
秋招面试大厂总被刷下来,你这样做保准你事半功倍!
最强分布式锁工具:Redisson
Detailed explanation of JVM memory model and structure (five model diagrams)
学长告诉我,大厂MySQL都是通过SSH连接的
随机推荐
测试开发是什么,为什么现在这么吃香?
动态RDLC报表(三)
艺术与科技的狂欢,云端XR支撑阿那亚2022砂之盒沉浸艺术季
动态RDLC报表(七)
d中简单禁止垃集
LeetCode笔记:Biweekly Contest 84
方舟开服务器Vmware虚拟机安装不上?
OpenCV 轮廓 —— 轮廓匹配
艺术与科技的狂欢,云端XR支撑阿那亚2022砂之盒沉浸艺术季
进行知识管理的好处有哪些?
Simple prohibition of garbage collection in d
解决启动项目初始化报错required a bean of type ‘int‘ that could not be found.的问题
Apache Doris Community PMC Yang Zhengguo: How do open source projects strike a balance between their own and the community's needs?
loadrunner脚本--参数化
Unity webgl 关于适配网页 ,并且用到js中的SetTimeOut和SetInterval()
使用mysql:5.6和 owncloud 镜像,构建一个个人网盘
毕昇编译器优化:Lazy Code Motion
最强分布式锁工具:Redisson
动手学深度学习_风格迁移
IMX6ULL—Assembly LED Lights