kubenetes install ingress-nginx

houjinkai 2020-07-26

查看kubectl services简称列表kubectl    api-resources
 查看ingress-nginx是否在安装
$ kubectl get pods -n ingress-nginx
NAME                                       READY     STATUS    RESTARTS   AGE
ingress-nginx-controller-fdcdcd6dd-vvpgs   1/1       Running   0          11s查看资源创建文件
$ kubectl describe pods ingress-nginx-controller-c96557986-q4f4z -n ingress-nginx
Name: ingress-nginx-controller-c96557986-q4f4zNamespace:    ingress-nginxPriority:     0Node:         node2/192.168.147.130Start Time:   Sun, 26 Jul 2020 17:04:47 +0800Labels:       app.kubernetes.io/component=controller              app.kubernetes.io/instance=ingress-nginx              app.kubernetes.io/name=ingress-nginx              pod-template-hash=c96557986Annotations:  cni.projectcalico.org/podIP: 10.244.1.33/32Status:       PendingIP:           10.244.1.33
 
删除ingress-nginx相关对象
$ kubectl delete pod ingress-nginx-controller-c96557986-q4f4z -n ingress-nginx
pod "ingress-nginx-controller-c96557986-q4f4z" deleted
 

ingress-nginx 在kubernetes中实现了传统nginx的url区分,同时又实现了动态更新配置的功能
可以到https://github.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy,下载相应的安装包,使用kubectl apply -f 加载相关模块

for file in configmap.yaml namespace.yaml rbac.yaml with-rbac.yaml tcp-services-configmap.yaml default-backend.yaml  ; \do wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/$file;done

 注意:

     因为新版本的已经变更来位置,或者一些yaml包已经不存在,需要根据自己的需要挑选yaml文件,可选的版本如下:

   https://github.com/kubernetes/ingress-nginx/blob/nginx-0.25.1/deploy/static

   https://github.com/kubernetes/ingress-nginx/blob/nginx-0.20.0/deploy/

  https://github.com/kubernetes/ingress-nginx/blob/nginx-0.24.1/deploy/

   如果实在没办法下载,就用笨办法,一个一个的把内容拷贝下来

  新版本对apiversion的支持有所变更,一些yaml文件的apiVersion需要调整

  如with-rabc.yaml default-backend.yaml 需要把extension/v1beta1,改成apps/v1

   ###  如果想使用最新的版本,则需要从官网下载最新版的安装脚本,最新版集合到了一个deploy.yaml文件中

发现半天来还是没成功,仔细查看发现事国外的连接不上啊

[ mytest]# kubectl get pods -n ingress-nginx
NAME                                       READY   STATUS             RESTARTS   AGE
ingress-nginx-admission-create-8x67h       0/1     Completed          0          44m
ingress-nginx-controller-c96557986-j62fk   0/1     ImagePullBackOff   0          21m
nginx-ingress-controller-9c56c5c84-s9hsh   1/1     Running            0          70m  

解决办法

修改mandatory.yaml配置文件
1.搜索 serviceAccountName,跳转到此处
2.修改配置

sed -i ‘s#quay.io/kubernetes-ingress-controller/nginx-ingress-controller#registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller#g‘ deploy.yaml

准备相关安装环境,先准备pod和service

apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  clusterIP: "None"
  ports:
  - name: http
    targetPort: 80
    port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
       app: myapp
       release: canary
  template:
     metadata:
       labels:
         app: myapp
         release: canary
     spec:
        containers:
        - name: myapp
          image: tomcat
          ports:
          - name: http
            containerPort: 80  

相关推荐

lwplvx / 0评论 2020-11-22
岁月如歌 / 0评论 2020-07-21