簡體   English   中英

客戶端向 HTTPS 服務器發送 HTTP 請求 - Kubernetes 集群

[英]Client sent an HTTP request to an HTTPS server - Kubernetes cluster

我已經使用本教程雲中創建了一個 Kubernetes 集群,並從 Docker 私有注冊表部署 [到集群] 一個名為chatapp的后端應用程序。 由於沒有將服務類型包含為LoadBalancer選項,我不得不恢復到NodePort類型。 這里是chatapp-deployment.yml文件供參考:

apiVersion: v1
kind: Service
metadata:
  name: chatapp
spec:
  selector:
    app: chatapp
  ports:
  - protocol: "TCP"
    port: 6443
    targetPort: 3000
  type: NodePort
  externalIPs:
  - A.B.C.D

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: chatapp
  labels:
    app: chatapp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: chatapp
  template:
    metadata:
      labels:
        app: chatapp
    spec:
      imagePullSecrets:
      - name: regsecret
      containers:
      - name: chatapp
        image: sebastian/chatapp
        imagePullPolicy: Always
        command: ["/bin/sh"]
        args: ["-c", "while true; do echo hello; sleep 10;done"]
        ports:
          - containerPort: 3000

注意:出於安全原因,我刪除了外部 IP。

我必須手動分配外部 IP,因為我無法將LoadBalancer設置為服務類型。 每當我嘗試訪問http://ABCD:6443 ,我都會得到以下信息:

Client sent an HTTP request to an HTTPS server.

我瀏覽了此鏈接,但無法解決我的問題。 我使用的外部 IP 來自master-o

在嘗試使用https://ABCD:6443訪問它時,我收到以下403消息:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403

如何授權訪問我的集群? 任何反饋和建議將不勝感激。

您的請求已到達 6443 處的 k8s api-server 而不是您的聊天應用程序。 訪問您的聊天應用程序; 首先檢索nodePort號: kubectl describe service chatapp | grep -i nodeport kubectl describe service chatapp | grep -i nodeport ,然后使用此 # 在http://abcd:<nodePort>訪問您的應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM