首页 > 其他分享 >k8s部署ingress

k8s部署ingress

时间:2023-02-13 17:14:22浏览次数:66  
标签:kubectl ingress name nginx 部署 dep k8s ngx

k8s部署ingress

零、nginx-dep
#ngx-dep
kubectl create deploy ngx-dep --image=nginx:alpine --dry-run=client -o yaml

最终的配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ngx-dep
  name: ngx-dep
spec:
  replicas: 2
  selector:
    matchLabels:
      app: ngx-dep
  template:
    metadata:
      labels:
        app: ngx-dep
    spec:
      volumes: 
      - name: ngx-conf-vol 
        configMap: 
          name: ngx-conf 
      containers: 
      - image: nginx:alpine 
        name: nginx 
        ports: 
        - containerPort: 80 
        volumeMounts: 
        - mountPath: /etc/nginx/conf.d 
          name: ngx-conf-vol

可以手动扩容

#扩容
kubectl scale --replicas=3 deploy ngx-dep`
​
#给deployment创建service
kubectl expose deploy ngx-dep --port=80 --target-port=80 --dry-run=client -o yaml

 

最终配置文件ngx-svc.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: ngx-dep
  name: ngx-svc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: ngx-dep

 


定义一个configmap

apiVersion: v1
kind: ConfigMap
metadata:
  name: ngx-conf
​
data:
  default.conf: |
    server {
      listen 80;
      location / {
        default_type text/plain;
        return 200
          'srv : $server_addr:$server_port\nhost: $hostname\nuri : $request_method $host $request_uri\ndate: $time_iso8601\n';
      }
    }

 

 

进入pod,查看负载均衡效果

#因为 Service、 Pod 的 IP 地址都是 Kubernetes 集群的内部网段,所以我们需要用 kubectl exec 进入到 Pod 内部(或者 ssh 登录集群节点),再用 curl 等工具来访问 Service:
kubectl exec -it ngx-dep-6796688696-fm9fj -- sh
​
curl svc_host:80,查看打印的内容

 

Service 的 IP 地址是“虚”的,只用于转发流量,所以 ping 无法得到回应数据包,也就失败了

可以给svc添加type=NodePort属性,就可以再集群外访问service了

一、ingress
kubectl create ing ngx-ing --rule="ngx.test/=ngx-svc:80" --class=ngx-ink --dry-run=client -o yaml

 

配置文件

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ngx-ing
spec:
  ingressClassName: ngx-ink
  rules:
  - host: ngx.test
    http:
      paths:
      - backend:
          service:
            name: ngx-svc
            port:
              number: 80
        path: /
        pathType: Exact

 

二、ingressClass
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: ngx-ink
​
spec:
  controller: nginx.org/ingress-controller

 

 

此时ingressClass、ingress、service的映射关系

img

NGINX-controller的配置文件https://github.com/chronolaw/k8s_study/tree/master/ingress

如果只是测试只需要四个文件

​
kubectl apply -f common/ns-and-sa.yaml
kubectl apply -f rbac/rbac.yaml
kubectl apply -f common/nginx-config.yaml
kubectl apply -f common/default-server-secret.yaml

 

下面实现ingress-controller,它实际也是一个应用

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ngx-kic-dep
  namespace: nginx-ingress
​
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ngx-kic-dep
​
  template:
    metadata:
      labels:
        app: ngx-kic-dep
    spec:
      containers:
      
      - image: nginx/nginx-ingress:2.2-alpine
        name: nginx
        args:
          - -ingress-class=ngx-ink

 

 

这个deploy是在新的namespace:nginx-ingress下面,查看命令如下

kubectl get po -n nginx-ingress

kubectl get deploy-n nginx-ingress

 

 最终的映射关系

img

标签:kubectl,ingress,name,nginx,部署,dep,k8s,ngx
From: https://www.cnblogs.com/wangbin2188/p/17116985.html

相关文章

  • springboot网站部署方式
    1centos安装java官网下载java8jdk:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html选择x64CompressedArchive(1)mkdir/usr/local/ja......
  • Flink-On-Yarn部署
    FlinkOnYarn集群部署1.集群配置安装Yarn-Flink前置环境需要hadoop集群,至少三台,组件布局如下:组件masterslave1slave2IP192.168.2.21192.168.2.22192.168......
  • Docker+Nginx打包部署前后端分离项目
    Docker+Nginx打包部署前后端分离项目​​1、问题描述​​​​2、项目打包​​​​2.1前端项目打包​​​​2.1.1修改vue.config.js文件​​​​2.1.2router配置中添加bas......
  • k8s部署flask
    k8s部署java服务是比较简单的,因为jar包已经包含了应用的所有内容,再加上JVM就可以开心的跑起来了。但是python服务比较特别,不仅需要python执行环境和应用代码,一般还需要依......
  • 记一次虚机强制断电 K8s 集群 etcd pod 挂掉快照丢失(没有备份)问题处理
    写在前面不小心拔错电源了,虚机强制关机,开机后集群死掉了记录下解决方案断电导致etcd快照数据丢失,没有备份.基本上是没办法处理可以找专业的DBA来处理数据看有没有可......
  • Docker 服务编排 快速部署 SpringCloud 项目 (一)
    一、docker-compose.ymlversion:"3.3"networks:zeal:volumes:data:services:gateway:restart:alwaysbuild:context:./gateway......
  • kubernetes 1.20二进制安装部署
    1.服务器资源规划服务器名称ip地址部署服务k8s-master1192.168.3.112apiserver,controller-manager,schedulerkubelet,kube-proxy,docker,etcd,haproxy,keepalived......
  • k8s安装YAPI
    一、前置条件提前安装MongoDB二、YAML文件namespace自行替换Deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:......
  • k8s——调度与驱逐
    设置节点不可调度,逐台进行kubectlcordonxxx-node-01kubectlcordonxxx-node-02kubectlcordonxxx-node-03驱逐节点上的pod,逐台进行kubectldrainxxx-node-01-......
  • centos下安装部署nginx
    1.在安装Nginx之前,要确保已经安装了需要的软件:gcc、pcre-devel、zlib-devel、openssl-devel。如果没有安装,执行下面命令。  yum-yinstallgccpcre-develzlib-deve......