192.168.28.132 k8smaster
192.168.28.133 k8snode1
192.168.28.134 k8snode2
192.168.28.135 k8snode3
192.168.28.131 www.img.com

www.img.com 是harbor 镜像仓库

k8s (kubectl version)版本是 1.23

准备安装ingress-nginx/controller-v1.1.0

参考:https://blog.csdn.net/qq_41586875/article/details/120896074,

参考(v1.0.0 的安装和使用):https://www.cnblogs.com/cnsre/p/15218379.html

一、修改apiserver 启动参数

vi /etc/kubernetes/manifests/kube-apiserver.yaml

在“enable-admission-plugins=NodeRestriction”后面添加 “,MutatingAdmissionWebhook,ValidatingAdmissionWebhook” 参数

--enable-admission-plugins=NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook

二、下载ingress-nginx controller:

https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml

(下载不了,可能需要科学上网或绑定hosts)

复制一份,命名为“deploy-v1.1.0.yaml”, 并修改“deploy-v1.1.0.yaml”, 搜索Deployment (dnsPolicy)并修改,带“#”号的是修改点,

  1. dnsPolicy换成ClusterFirstWithHostNet
  2. 新加 hostNetwork: true
  3. 新加 nodeName: k8snode1 ,指定部署到k8snode1
  4. 新加
tolerations: - key: node-role.kubernetes.io/masteroperator: Exists

“deploy-v1.1.0.yaml” - Deployment 局部修改示例:

  template:            metadata:          labels:          app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/component: controllerspec:              dnsPolicy: ClusterFirstWithHostNet  #既能使用宿主机DNS,又能使用集群DNShostNetwork: true                   #与宿主机共享网络nodeName: k8snode1              #设置只能在k8snode1节点运行tolerations:                     #设置能容忍master污点- key: node-role.kubernetes.io/masteroperator: Existscontainers:   - name: controllerimage: k8s.gcr.io/ingress-nginx/controller:v1.1.0@sha256:f766669fdcf3dc26347ed273a55e754b427eb4411ee075a53f30718b4499076aimagePullPolicy: IfNotPresent

三、安装ingress-nginx-controller:

kubectl apply -f deploy-v1.1.0.yaml

(镜像拉不下来时,可能需要科学上网)

查看状态

kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx -o wide

NAME                                        READY   STATUS      RESTARTS   AGE   IP               NODE       NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-rnfvr        0/1     Completed   0          98m   10.244.3.67      k8snode3   <none>           <none>
ingress-nginx-admission-patch-mzsv2         0/1     Completed   0          98m   10.244.2.6       k8snode2   <none>           <none>
ingress-nginx-controller-648c6ccb64-lnstv   1/1     Running     0          98m   192.168.28.133   k8snode1   <none>           <none>

可以看到nginx-controller部署到了node1,内网IP是:192.168.28.133

如果一直是非“Running”,可以用下面的命令查看pod状态,然后百度解决

kubectl describe pod ingress-nginx-controller-648c6ccb64-lnstv --namespace=ingress-nginx

到node-1上看下本地端口: netstat -lntup | grep nginx

tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      7385/nginx: worker
tcp        0      0 127.0.0.1:10245         0.0.0.0:*               LISTEN      55267/nginx-ingress
tcp        0      0 127.0.0.1:10246         0.0.0.0:*               LISTEN      7382/nginx: worker
tcp        0      0 127.0.0.1:10247         0.0.0.0:*               LISTEN      7382/nginx: worker
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7385/nginx: worker
tcp        0      0 0.0.0.0:8181            0.0.0.0:*               LISTEN      7385/nginx: worker
tcp6       0      0 :::8443                 :::*                    LISTEN      55267/nginx-ingress
tcp6       0      0 :::443                  :::*                    LISTEN      7382/nginx: worker
tcp6       0      0 :::10254                :::*                    LISTEN      55267/nginx-ingress
tcp6       0      0 :::80                   :::*                    LISTEN      7382/nginx: worker
tcp6       0      0 :::8181                 :::*                    LISTEN      7382/nginx: worker  

四、创建 ingress 服务:

参考: https://blog.csdn.net/qq_16538827/article/details/120265570

用到的.net core mvc Dockerfile等

打包.net core mvc 镜像

Dockerfile:

#添加.net6基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app# 一般情况下必须开放
EXPOSE 80
# 如果使用https,记得打开443端口,但是一般不用
#EXPOSE 443#修改为上海时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY publish/ /app
ENTRYPOINT ["dotnet", "net6mvc.dll"]

k8s 上部署 .net core mvc 服务

web-pod.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:name: net6mvclabels:k8s-app: net6mvc
spec:replicas: 3selector:matchLabels:k8s-app: net6mvctemplate:metadata:labels:k8s-app: net6mvcspec:containers:- name: net6mvcimage: www.img.com/library/net6-mvc:1.0imagePullPolicy: Alwaysports:- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:labels:k8s-app: net6mvcname: net6mvc
spec:type: NodePortports:- port: 80targetPort: 80nodePort: 32143selector:k8s-app: net6mvc

k8s 上部署 ingress 服务

ingress-net6mvc.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-net6mvcannotations:kubernetes.io/ingress.class: "nginx"nginx.ingress.kubernetes.io/use-regex: "true"
spec:rules:- host: www.net6mvc.comhttp:paths:- path: "/"pathType: Prefixbackend:service:name: net6mvcport:number: 80

www.net6mvc.com 是随便起的域名。

docker build -t www.img.com/library/net6-mvc:1.0 .
docker push www.img.com/library/net6-mvc:1.0
docker rmi www.img.com/library/net6-mvc:1.0kubectl apply -f web-pod.yamlkubectl apply -f ingress-net6mvc.yaml

查看ingress-nginx 的内网工作端口 kubectl get svc -n ingress-nginx

[root@k8smaster home]# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.97.204.228    <pending>     80:32048/TCP,443:32094/TCP   115m
ingress-nginx-controller-admission   ClusterIP      10.108.100.124   <none>        443/TCP                      115m

可以看到nginx-controller http端口是:32048

C:\windows\system32\drivers\etc\,绑定hosts后,

192.168.28.133 www.net6mvc.com

浏览器访问:

http://www.net6mvc.com:32048/

k8s 安装ingress nginx controller 并部署.net core ingress服务相关推荐

  1. 使用Topshelf部署.net core windows服务

    使用Topshelf部署.net core windows服务 首先新建一个.net core的模板worker程序 过程 略 打开Program.cs namespace TopshelfDemo ...

  2. k8s==安装仪表盘,用仪表盘部署nginx

    k8s安装仪表盘_ChengQian's blog的博客-CSDN博客_k8s仪表盘 https://zhuanlan.zhihu.com/p/513430375 # 下载所需要的yaml文件 wge ...

  3. centOS7下 安装nodejs+nginx+mongodb+pm2部署vue项目

    一.购买服务器并远程连接 1.购买服务器和域名 可以选择阿里云或者是其他的厂商的服务器.然后会获得服务器ip地址,用户名和密码. 购买域名,将域名绑定到ip地址上. 2.下载xshell,winscp ...

  4. Kubernetes Ingress Nginx使用

    在此我们不讲述如何部署ingress-controller,只演示如何使用ingress之nginx使用.主要演示如何使用ingress nginx实现我们nginx的多样化配置,从而达到使用ingr ...

  5. Linux系统上部署dotnet core

    Linux系统上部署dotnet core 主要步骤如下: 安装linux Linux下安装dotnet core环境 Linux下部署dotnet core系统 主要步骤如下: 因我公司需要,做一个 ...

  6. nginx 集群部署_入门级实操教程!从概念到部署,全方位了解K8S Ingress!

    Kubernetes Ingress用于添加规则,以将流量从外部路由到Kubernetes集群的服务中.在本文中你将了解ingress 的概念,以及用于路由外部流量到Kubernetes deploy ...

  7. Kubernetes K8S 1.20部署Ingress nginx 0.30

    主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 ...

  8. nginx 集群部署_Nginx Ingress on TKE 部署最佳实践

    概述 开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高.Nginx Ingress 有多种部署方式,本文将介绍 Nginx I ...

  9. (2022版)一套教程搞定k8s安装到实战 | Ingress

    视频来源:B站<(2022版)最新.最全.最详细的Kubernetes(K8s)教程,从K8s安装到实战一套搞定> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支 ...

最新文章

  1. php接收flutter,来自Flutter中的PHP的API流(非Firebase)
  2. 揭秘全球首次互联网8K直播背后的技术实现
  3. OpenCV分配与释放图像空间
  4. android 模拟器 相册里传照片_引力相册APP下载-引力相册下载v1.1 官方版
  5. python整人程序_python—做一个恶搞程序
  6. Android 反编译apk文件(转)
  7. OpenGL运用辅佐库创立规矩几许目标
  8. lua如何判断是否支持cookie_如何判断面部是否需要吸脂
  9. 彻底搞懂Html5本地存储技术(一)
  10. 初始化Direct3D(2)
  11. android打印机驱动4521,三星scx4521f驱动下载
  12. 数据中心的供配电系统
  13. stc单片机id加密c语言,STC单片机内部ID读取
  14. 7天快速掌握MySQL-DAY2
  15. 5G/NR 终于明白5G原来是这样
  16. c语言速算24课程设计,C语言速算24数据结构课程设计.docx
  17. CentOS文件备份|还原
  18. python打印数组部分元素_Python打印输出数组中全部元素
  19. Smart PLC与Wincc通过Simatic NET建立OPC通讯(1)
  20. 试行非24小时营业 7-11“老了”还是“困了”

热门文章

  1. 凯特勒通道(backtrader)
  2. windows使用scp远程传输文件的方法
  3. 如何获取保存阿里云的图片url
  4. MongoDB——聚合管道之$project操作
  5. 高考必胜|东方星书法祝全体考生旗开得胜,金榜题名
  6. FineReport数据集
  7. 写在2022的小尾巴
  8. Dubbo-Zookeeper注册中心;监控中心
  9. IJCAI 2022 | 用一行代码大幅提升零样本学习方法效果!南京理工牛津提出即插即用分类器模块...
  10. app爬虫之Android模拟器与fildder的搭建