[英]Nginx ingress controller failed to run
我正在嘗試在沒有負載平衡器和雲提供程序的情況下在自己的服務器中部署Nginx-ingress控制器。 我做了以下步驟:
apiVersion: v1
kind: Namespace
metadata:
name: ingress-nginx
然后,我為serviceAccount創建了一個名為nginx-ingress
的集群角色。
我的nginx-controller-service.yaml
:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
spec:
externalTrafficPolicy: Local
type: NodePort
selector:
app: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
externalIPs:
- my-external-node-ip
和nginx-ingress-controller.yaml
:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-ingress-controller
namespace: ingress-nginx
spec:
replicas: 1
selector:
matchLabels:
app: ingress-nginx
template:
metadata:
labels:
app: ingress-nginx
annotations:
prometheus.io/port: '10254'
prometheus.io/scrape: 'true'
spec:
serviceAccountName: nginx-ingress
containers:
- name: nginx-ingress-controller
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.9.0-beta.17
args:
- /nginx-ingress-controller
- --default-backend-service=$(POD_NAMESPACE)/default-http-backend
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
但是,當我獲得部署狀態時,它向我顯示:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
ingress-nginx deployment.apps/default-http-backend 1/1 1 1 17m
ingress-nginx deployment.apps/nginx-ingress-controller 0/1 0 0 17m
控制器不可用/未運行。
這里出了什么問題,如何獲取失敗部署的日志?
該問題是由於缺少服務帳戶引起的。
58m Warning FailedCreate ReplicaSet Error creating: pods "nginx-ingress-controller-5b7f66f95f-" is forbidden: error looking up service account ingress-nginx/nginx-ingress: serviceaccount "nginx-ingress" not found
使用以下命令可以創建SA
kubectl create serviceaccount my-service-account
進一步了解k8s-service-account
從服務清單中刪除以下條目
externalTrafficPolicy: Local
externalIPs:
- my-external-node-ip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.