k8s + Harbor 部署私有仓库服务

1 整体架构

image

1 通过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 \ # 密码
 [email protected] \ # 邮箱

配置成功后 创建资源

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               

# 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 获取私服镜像完成!

你可能感兴趣的:(k8s + Harbor 部署私有仓库服务)