kubenetes install ingress-nginx
檢視kubectl services簡稱列表檢視ingress-nginx是否在安裝
kubectl api-resources
$ 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-q4f4z
Namespace: ingress-nginx
Priority: 0
Node: node2/192.168.147.130
Start Time: Sun, 26 Jul 2020 17:04:47 +0800
Labels: app.kubernetes.io/component=controller
app.kubernetes.io/instance=ingress-nginx
app.kubernetes.io/name=ingress-nginx
Annotations: cni.projectcalico.org/podIP: 10.244.1.33/32
Status: Pending
IP: 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檔案中
發現半天來還是沒成功,仔細檢視發現事國外的連線不上啊
[root@master 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