kubernetes 从harbor 拉取镜像部署
前提
要在 Kubernetes 中从 Harbor 拉取 Nginx 镜像并部署,需完成以下步骤:配置 Harbor 认证、创建部署资源、暴露服务。
一、配置harbor认证
创建harbor认证secert
kubectl create secret docker-registry harbor-cred \ --docker-server=192.168.0.100 \ # Harbor 地址(无需 http/https,如带端口需加,如 192.168.0.100:80) --docker-username=admin \ # Harbor 用户名 --docker-password=Harbor12345 \ # Harbor 密码 --namespace=default # 命名空间(与后续部署一致)
二、创建deployment部署nginx
nginx-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-from-harbor namespace: default # 与 Secret 同命名空间 spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # 引用 Harbor 认证 Secret imagePullSecrets: - name: harbor-cred # 与步骤 1 创建的 Secret 名称一致 containers: - name: nginx # Harbor 镜像地址(格式:Harbor地址/项目名/镜像名:标签) image: 192.168.0.100/myproject/nginx:v1 # 替换为你的镜像地址 ports: - containerPort: 80 resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi"
应用部署配置
kubectl apply -f nginx-deployment.yaml
验证部署状态
kubectl get deployments nginx-from-harbor
确保 READY 列显示 2/2(表示 2 个副本正常运行)。
排查部署失败问题
kubectl logs <pod-name>

查看pod详细时间,确定具体错误,可通过一下命令
kubectl describe pod <pod_name>


三、暴露nginx服务
nginx-service.yaml
apiVersion: v1 kind: Service metadata: name: nginx-service namespace: default spec: selector: app: nginx # 与 Deployment 中的 Pod 标签一致 ports: - port: 80 targetPort: 80 type: NodePort # 集群外可通过节点 IP:NodePort 访问
应用server 配置
kubectl apply -f nginx-service.yaml
获取访问地址
kubectl get svc nginx-service
输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-service NodePort 10.109.xx.xx <none> 80:30080/TCP 10s
外部访问地址:任意节点 IP:30080(30080 为 NodePort)。
    博客里大都是转载的内容,其目的主要用户知识的组织和管理。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号