nginx-ingress-controller:初始化与Kubernetes apiserver的连接时出错

时间:2019-11-28 06:47:41

标签: nginx kubernetes nginx-ingress

nginx-ingress-controller错误。初始化与kubernetes apiserver的连接时,它给出错误。集群是否有问题,无法理解此问题。我想在群集之外公开我的服务。下面是带有错误和我的nginx-ingress-controller.yml的docker日志

码头工人日志

Creating API client for https://10.96.0.1:443
F1128 06:30:25.376076       7 launch.go:330] Error while initializing connection to 
Kubernetes apiserver. This most likely means that the cluster is misconfigured (e.g., it has 
invalid apiserver certificates or service accounts configuration). Reason: Get  
https://10.96.0.1:443/version: dial tcp 10.96.0.1:443: i/o timeout

nginx-controller.yml

apiVersion: v1
kind: Namespace
metadata:
  name: ingress-nginx


--- 
kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
labels:
  app: ingress-nginx
spec:
  externalTrafficPolicy: Local
type: LoadBalancer
selector:
app: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https


---

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-ingress-controller
namespace: default
spec:
replicas: 1
#  selector:
#    matchLabels:
#      app: ingress-nginx
template:
metadata:
  labels:
    app: ingress-nginx
  annotations:
    prometheus.io/port: '10254'
    prometheus.io/scrape: 'true'
spec:
  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)/nginx-default-backend-external

        - --logtostderr
        - --configmap=$(POD_NAMESPACE)/nginx-ingress-config
        - --default-ssl-certificate=$(POD_NAMESPACE)/default-tls
      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

可能是什么原因

1 个答案:

答案 0 :(得分:0)

基于评论发布为社区Wiki,以获得更好的可见性。

根本原因不是使用nginx-controller 设置,而是使用Kubernetes Cluster Configuration

1。使用错误的cidr

原始海报使用与主机相同的--pod-network-cidr值。在documentation中有描述。

  

另外,请注意,您的Pod网络不得与任何主机网络重叠,因为这可能会引起问题。如果您发现网络插件的首选Pod网络与某些主机网络之间存在冲突,则应考虑使用合适的CIDR替换,并在使用--pod-network-cidr的kubeadm初始化期间使用它,并替换为网络插件的YAML中的替换

2。 CoreDNS崩溃。

原始海报使用ConfigMap更改了kubectl -n kube-system edit configmap coredns,其中包含有关CoreDNS配置(注释循环)的信息。后来,OP安装了CNI-绒布,并重新启动了CoreDNS吊舱,以从ConfigMap接收新配置。

之后,Nginx-controller配置YAML正常工作。