第四章和第六章ingress-nginx冲突了吧

来源:4-3 用kubespray一键部署生产级k8s集群

weixin_慕圣2119594

2022-01-12

在第四章4-3视频中 使用kubespray自动部署 已经生成了ingress-nginx的pod 但是使用daemon来控制的。
图片描述
第六章6-6中又手动部署了一遍ingress-nginx,而且设置了networkhost。
图片描述

我理解这两个操作有一个就可以了吧?
1.如果想修改第四章中的ingres-nginx改为第六章中的networkhost 应该修改那个配置文件呢?具体该怎么操作?
2.第四章自动生成的没有default-http-backend这个服务 是否有影响 有什么区别呢?
3.如果想实现第六章的操作是否要删除第四章中的Daemon Sets?
4.不知道是不是因为冲突的原因现在第六章的controller报找不到合适的节点和端口

0/4 nodes are available: 4 node(s) didn't have free ports for the requested pod ports.

图片描述
但是我已经配置了node3节的lable app=ingress
同时node3的80端口是空闲的 在yaml里也配置了nodeselector app: ingress
图片描述

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-ingress-controller
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: ingress-nginx
      app.kubernetes.io/part-of: ingress-nginx
  template:
    metadata:
      labels:
        app.kubernetes.io/name: ingress-nginx
        app.kubernetes.io/part-of: ingress-nginx
      annotations:
        prometheus.io/port: "10254"
        prometheus.io/scrape: "true"
    spec:
      serviceAccountName: nginx-ingress-serviceaccount
      hostNetwork: true
      nodeSelector:
        app: ingress
      containers:
        - name: nginx-ingress-controller
          image: registry.cn-qingdao.aliyuncs.com/kubernetes_xingej/nginx-ingress-controller:0.19.0
          args:
            - /nginx-ingress-controller
            - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
            - --configmap=$(POD_NAMESPACE)/nginx-configuration
            - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
            - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
            - --publish-service=$(POD_NAMESPACE)/ingress-nginx
            - --annotations-prefix=nginx.ingress.kubernetes.io
          securityContext:
            capabilities:
              drop:
                - ALL
              add:
                - NET_BIND_SERVICE
            # www-data -> 33
            runAsUser: 33
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          ports:
            - name: http
              containerPort: 80

求老师加个微信,要学哭了。。。

写回答

1回答

刘果国

2022-01-13

是的,kubespray默认部署了ingress-nginx,使用kubespray部署的集群就可以跳过后面专门部署ingress的章节了。

或者删掉kubespray默认的ingress-nginx,删除的方法很简单,kubectl get all一下看看有啥,都删了(每种资源的依赖关系可以自己在删除过程中体会)

关于这个错误:“4 node(s) didn't have free ports for the requested pod ports.”提示的很明显啦,肯定是你部署两套ingress-nginx端口冲突了吧?删掉一个就好

0
3
刘果国
回复
weixin_慕圣2119594
是的,或者从某一个job开始(这个要求对整个流程和依赖关系比较熟悉,否则容易出问题 建议从头来)
2022-01-14
共3条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2216 问题

查看课程