kubernetes 1.21 部署 ingressnginx

摘要:
https://kubernetes.github.io/ingress-nginx/deploy/baremetal/https://docs.k0sproject.io/v1.22.2+k0s.1/examples/nginx-ingress/一.部署#使用baremetalcurl-khttps://raw.fastgit.org/kubernetes/ingress-nginx/main/

https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
https://docs.k0sproject.io/v1.22.2+k0s.1/examples/nginx-ingress/

kubernetes 1.21 部署 ingressnginx第1张

一. 部署

# 使用 baremetal

curl -k https://raw.fastgit.org/kubernetes/ingress-nginx/main/deploy/static/provider/baremetal/deploy.yaml  -o deploy.yaml

sed -e 's|image: k8s.gcr.io|image: 192.168.100.198:5000|g' -i /tmp/deploy.yaml 

kubectl apply -f /tmp/deploy.yaml 

# kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS      RESTARTS   AGE   IP             NODE     NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create--1-hdssd     0/1     Completed   0          32s   10.240.2.161   vm-197   <none>           <none>
ingress-nginx-admission-patch--1-qlbt5      0/1     Completed   1          32s   10.240.2.162   vm-197   <none>           <none>
ingress-nginx-controller-7c9466769f-wwlpk   1/1     Running     0          33s   10.240.2.163   vm-197   <none>           <none>

# kubectl edit service ingress-nginx-controller -n ingress-nginx
type: NodePort -> type: LoadBalancer

# kubectl get services -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.96.11.180    192.168.100.161   80:31888/TCP,443:31071/TCP   3m49s
ingress-nginx-controller-admission   ClusterIP      10.101.45.192   <none>            443/TCP                      3m49s

二. 基于名称的负载均衡
1. 查看service

# kubectl get service -n kube-demo -o wide
NAME    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE     SELECTOR
nginx   ClusterIP   10.97.122.87   <none>        80/TCP    7m13s   app=nginx

# kubectl describe service nginx -n kube-demo
Name:              nginx
Namespace:         kube-demo
Labels:            app=nginx
Annotations:       <none>
Selector:          app=nginx
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.97.122.87
IPs:               10.97.122.87
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         10.240.2.143:80,10.240.2.144:80,10.240.36.12:80
Session Affinity:  None
Events:            <none>

2. 建立ingress

服务名: name: nginx

cat > /tmp/ingress.yaml << EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  namespace: kube-demo
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: web.example.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: nginx
            port:
              number: 80
EOF

# kubectl apply -f /tmp/ingress.yaml 
ingress.networking.k8s.io/ingress created

# kubectl get ingress -A
NAMESPACE         NAME      CLASS    HOSTS             ADDRESS   PORTS   AGE
kube-demo   ingress   <none>   web.example.com             80      13s

# kubectl describe ingress -n kube-demo
Name:             ingress
Namespace:        kube-demo
Address:          
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host             Path  Backends
  ----             ----  --------
  web.example.com  
                   /   web-nginx:80 (10.240.2.151:80,10.240.36.4:80,10.240.36.5:80)
Annotations:       kubernetes.io/ingress.class: nginx
Events:
  Type    Reason  Age   From                      Message
  ----    ------  ----  ----                      -------
  Normal  Sync    33s   nginx-ingress-controller  Scheduled for sync

3. 测试

# curl -I -k https://192.168.100.161 -H 'Host: web.example.com'
HTTP/1.1 200 OK
Date: Thu, 11 Nov 2021 06:29:50 GMT
Content-Type: text/html
Content-Length: 615
Connection: keep-alive
Last-Modified: Tue, 07 Sep 2021 15:50:58 GMT
ETag: "61378a62-267"
Accept-Ranges: bytes
Strict-Transport-Security: max-age=15724800; includeSubDomains

# curl -I http://192.168.100.161 -H 'Host: web.example.com'
HTTP/1.1 200 OK
Date: Thu, 11 Nov 2021 06:30:13 GMT
Content-Type: text/html
Content-Length: 615
Connection: keep-alive
Last-Modified: Tue, 07 Sep 2021 15:50:58 GMT
ETag: "61378a62-267"
Accept-Ranges: bytes

三. 基于URI的负载均衡
1. 建立service

cat > /tmp/service.yaml << EOF
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: service1
  namespace: deployment-demo
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: service2
  namespace: deployment-demo
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
EOF

2. 建立ingress

cat > /tmp/ingress-uri.yaml << EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-uri
spec:
  rules:
  - host: web2.example.com
    http:
      paths:
      - path: /foo
        pathType: Prefix
        backend:
          service:
            name: service1
            port:
              number: 80
      - path: /bar
        pathType: Prefix
        backend:
          service:
            name: service2
            port:
              number: 80
EOF

四、 TLS

免责声明:文章转载自《kubernetes 1.21 部署 ingressnginx》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用Xftp&amp;amp;Xshell 工具进行文件上传与运行webapiXcode9 打包ipa(导出ipa测试包)时总是意外退出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

fastdfs 集群搭建

1、部署FastDFS及Nginx (本套FastDFS为简化版安装部署,只需解压至普通用户家目录下或者任意目录,解压后修改脚本,执行脚本后即可使用。) 说明:FastDFS分为tracker(默认端口为22122)和storage(默认端口为23000)服务,tracker负责前端的负载及导航功能,storage仅负责存贮数据。虽然是分布式存储,但是对于...

ELK 二进制安装并收集nginx日志

对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技术栈的结合, EL...

Nginx报错:Sorry, the page you are looking for is currently unavailable. Please try again later.

查看了进程, nginx, php-fpm都在运行, 排除程序错误, 那么就是配置的问题了. 一个可能的错误, 是由于配置中的fastcgi_pass 配置错了 错误的配置如下 server { listen 80; server_name localhost; #charset koi8-r; #a...

nginx配置时server_name配的不一样还能正常访问

  原先server_name 配的是api.test.toutiao.applet.rockysaas.com,监听的是80端口,http。后来域名改成了api-test.tbk.rockysaas.com,监听443,https。但是发现原先的api.test.toutiao.applet.rockysaas.com还能访问。 server { #...

nginx与nfs

一:nginx服务 二进制安装nginx包 作为web服务修改配置文件 让配置生效,验证配置 二:nfs服务 二进制安装nfs 作为共享存储挂载在三台web的网站根目录下 实现,在任意一台web上修改的结果,其余两台都可以看到 安装rpc #yum install rpcbind nfs-utils -y 三:nginx反向代理三台web 实现基于...

Apache与Nginx优缺点比较

本文来源:收集、整理自互联网 1、nginx相对于apache的优点:轻量级,同样起web服务,比apache 占用更少的内存及资源抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速 apache相对于nginx的优点...