K8S Ingress

cd /usr/local/install-k8s/
mkdir ingress
cd ingress/
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
kubectl apply -f mandatory.yaml 

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
kubectl apply -f service-nodeport.yaml 

vi ingress.http.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: wangyanglinux/myapp:v1
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    name: nginx

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-test
spec:
  rules:
    - host: www.klvchen.com
      http:
        paths:
        - path: /
          backend:
            serviceName: nginx-svc
            servicePort: 80

kubectl apply -f ingress.http.yaml 

kubectl get pod -n ingress-nginx

kubectl get svc -n ingress-nginx
NAME            TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.104.99.235   <none>        80:30383/TCP,443:31508/TCP   2d

修改 hosts 文件

浏览

配置 https

cd /usr/local/install-k8s/ingress
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"
kubectl create secret tls tls-secret --key tls.key --cert tls.crt
kubectl delete -f ingress.http.yaml
cp ingress.http.yaml ingress.https.yaml 

vi ingress.https.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: wangyanglinux/myapp:v1
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    name: nginx

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-test
spec:
  tls:
    - hosts:
      - www.klvchen.com
      secretName: tls-secret
  rules:
    - host: www.klvchen.com
      http:
        paths:
        - path: /
          backend:
            serviceName: nginx-svc
            servicePort: 80


kubectl apply -f ingress.https.yaml 

kubectl get svc -n ingress-nginx

配置 basic-auth

yum install httpd -y
mkdir basic-auth
cd basic-auth/
htpasswd -c auth foo
kubectl create secret generic basic-auth --from-file=auth 
cd /usr/local/install-k8s/ingress
kubectl delete -f ingress.https.yaml 
cp ingress.http.yaml ingress.http.basic-auth.yaml

vi ingress.http.basic-auth.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: wangyanglinux/myapp:v1
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    name: nginx

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-with-auth
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - foo'
spec:
  rules:
    - host: www.klvchen.com
      http:
        paths:
        - path: /
          backend:
            serviceName: nginx-svc
            servicePort: 80
       

kubectl create -f ingress.http.basic-auth.yaml 
kubectl get svc -n ingress-nginx

浏览 https://www.klvchen.com:31508/hostname.html 时必须输入用户名和密码

posted @ 2020-03-21 15:26  klvchen  阅读(256)  评论(0)    收藏  举报