初探 k8s
前言:
从接触 docker 到 现在能接触 k8s 大概过了一年多。
说这个话的意思是,学习是一个循序渐进的过程,只有从开始使用 docker,慢慢熟悉 docker,会写 Dockerfile,到能使用 docker-compose 一键部署项目,再来学习 k8s 是我认为最合适的一个线路。
预备
docker
docker-compose
部署 k8s
参考自知乎:
为了部署方便,我们可以选择部署k3s。
但是我在使用 k3s 过程中还是有点问题,所以还是换了 k8s。
此方法前期条件是安装了 docker for desktop.
接下来就是安装一些 k8s 相关的镜像。
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop
# git checkout v1.21.2 # 切换指定的版本,这个需要docker for desktop 中 k8s 的版本
Set-ExecutionPolicy RemoteSigned # powershell 管理员权限运行
.\load_images.ps1 # 执行脚本
最后 Enable Kubernetes
测试安装
kubectl cluster-info
kubectl get nodes
运行第一个 k8s 应用
参考自 k8s 权威指南。
相关的配置文件已托管在我的github上。
1、首先为 MySql 服务创建一个 RC 定义文件:mysql-rc.yaml
touch mysql-rc.yaml
# 将github上的该文件的内容复制上去
2、发布到 Kubernetes 集群
kubectl create -f mysql-rc.yaml
3、验证是否成功
kubectl get rc
kubectl get pods
4、构建 Mysql Kubernetes Service 定义文件
touch mysql-svc.yaml
# 将github上的该文件的内容复制上去
kubectl create -f mysql-svc.yaml
5. 验证创建的 service
kubectl get svc
注意到 MySql 服务被分配了一个值为 10.110.175.148 的 ClusterIP 地址,这是一个虚地址,随后 Kubernetes 集群中其他新创建的 Pod 就可以通过 Service 的 ClusterIP+端口号 3306 来连接和访问它。根据 Service 的唯一名字,容器可以从环境变量中获取到 Service 对应的 ClusterIP 地址和端口,从而发起 TCP/IP 连接请求了。
6. 创建 tomcat 对应的 RC 文件 myweb-rc.yaml
touch myweb-rc.yaml
# 将github上的该文件的内容复制上去
kubectl create -f myweb-rc.yaml
7. 构建 Tomcat Kubernetes Service 定义文件
touch myweb-svc.yaml
# 将github上的该文件的内容复制上去
kubectl create -f myweb-svc.yaml
1 条评论