1 整体架构
整体架构.png1 通过kubectl 命令工具 发起 资源创建kubectl create -f [资源文件名].yaml
2 k8s 处理相关请求后 kube-scheduler 服务 为pod 寻找一个合适的 “家” node2 并创建pod。
3 node2 上的kubelet 处理相关资源,使用docker 拉取 相关镜像 并run 。
注意: 这里只说明了整个流程的工作流转情况,请勿深究!
2 部署资源
2.1 部署 user 资源 user-deploy.yml
这里只 创建 pod ,并没有 service
kind: Deployment # 使用 Deployment 和 Replicas set 管理pod
metadata:
name: user-deployment
spec:
replicas: 1 # pod 副本数
template:
metadata:
labels:
app: user # 标签 app=user
spec:
containers: # 镜像信息
- name: user
image: 192.168.229.20/user/user-setvice:v2.0 # 这里我的私服就是 192.168.229.20 关键
ports:
- containerPort: 8080 # 镜像端口
2.2 通过master 部署资源
注意 :一般第一次pull 私有仓库需要 login ,配置 密钥或者手动在各个 node上docker login
# master 节点运行
# kubectl create secret docker-registry registry-secret --namespace=default \
--docker-server=192.168.229.20 \ # 私服地址
--docker-username=admin \ #登陆的用户
--docker-password=Harbor12345 \ # 密码
--docker-email=8468@qq.com \ # 邮箱
配置成功后 创建资源
kubectl create -f user-deploy.yml
[root@k8s-master user-service]# kubectl create -f user-deploy.yml
deployment.extensions/user-deployment created
查看 deploy
kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
user-deployment 1/1 1 1 92s
#运行在node1 上
[root@k8s-master user-service]# kubectl get pod --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default user-deployment-69878cdddb-9l58v 1/1 Running 0 2m29s 10.244.1.24 k8s-node1 <none> <none>
# node1 上查看 镜像
[root@k8s-node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.229.20/user/user-setvice v2.0 3dc0481535b8 28 hours ago 122MB
# 最近运行的容器
[root@k8s-node1 docker]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e986d0d0f4f 3dc0481535b8 "java -jar /app.jar" 5 minutes ago Up 5 minutes k8s_user_user-deployment-69878cdddb-9l58v_default_6e89a386-3bfd-11e9-b629-000c29758660_0
# 删除 kubectl delete deploy user-deployment
deployment.extensions "user-deployment" deleted
到此 k8s 获取私服镜像完成!后面会有 git + jenkins + maven + docker + k8s 自动构建spring cloud 服务,请持续关注!
网友评论