Minikube v1.19.0μ ingress-nginxλ₯Ό v0.44.0μΌλ‘ μ λ°μ΄νΈνμ΅λλ€. μ΄λ€ μ΄μ λ‘λ (μ¬μ ν μμλ΄λ €κ³ μλ μ€) awx-operator 컨ν μ΄λμμ λ‘κ·Έλ₯Ό μΆμ νλ λμ λ€μ μ€λ₯κ° λ°μν©λλ€.
(item=tower_ingress) => {\"ansible_loop_var\": \"item\", \"changed\": false, \"error\": 500, \"item\": \"tower_ingress\", \"msg\": \"Failed to apply object: b'{\\\"kind\\\":\\\"Status\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"metadata\\\":{},\\\"status\\\":\\\"Failure\\\",\\\"message\\\":\\\"Internal error occurred: failed calling webhook \\\\\\\\\\\"validate.nginx.ingress.kubernetes.io\\\\\\\\\\\": an error on the server (\\\\\\\\\\\"\\\\\\\\\\\") has prevented the request from succeeding\\\",\\\"reason\\\":\\\"InternalError\\\",\\\"details\\\":{\\\"causes\\\":[{\\\"message\\\":\\\"failed calling webhook \\\\\\\\\\\"validate.nginx.ingress.kubernetes.io\\\\\\\\\\\": an error on the server (\\\\\\\\\\\"\\\\\\\\\\\") has prevented the request from succeeding\\\"}]},\\\"code\\\":500}\\\\n'\", \"reason\": \"Internal Server Error\", \"status\": 500}
μ΄κ²μ λ€μκ³Ό κ΄λ ¨λ μ μμ΅λλ€: https://github.com/kubernetes/ingress-nginx/issues/5401
λ€μμ μ€ννμ¬ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμμ΅λλ€.
$ kubectl get validatingwebhookconfigurations
$ kubectl delete -A ValidatingWebhookConfiguration [configuration-name]
μ¬κΈ°μ minikubeμ κ²½μ° [configuration-name]
λ ingress-nginx-admission
μ
λλ€.
minikube v1.18.1λ‘ λμκ°λ©΄ 0.8.0κ³Ό awx-operator κ°λ° λͺ¨λμμ λͺ¨λ κ²μ΄ μ μλν©λλ€.
μ¬μμ°νλ €λ©΄(macos):
$ minikube config set vm-driver hyperkit
$ minikube start --cpus=4 --memory=8192
$ minikube addons configure ingress
$ minikube addons enable ingress
$ minikube addons enable metrics-server
$ minikube addons enable dashboard
$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/devel/deploy/awx-operator.yaml
$ kubectl apply -f awx-deploy.yml
awx-deploy.yml:
---
apiVersion: v1
kind: Namespace
metadata:
name: awx
labels:
name: awx
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
namespace: awx
labels:
name: awx
spec:
tower_ingress_type: Ingress
tower_hostname: awx-service.awx.svc.cluster.local
---
apiVersion: v1
kind: Secret
metadata:
name: awx-admin-password
namespace: awx
labels:
name: awx
stringData:
password: changeme
μλ: Minikube v1.18.1
μ€ν¨: Minikube v1.19.0
μ¬κΈ°μλ κ°μ λ¬Έμ κ° μμ΅λλ€. ν΄κ²° λ°©λ²μ λν΄ @bhundven μκ² κ°μ¬λ립λλ€.
μ¬κΈ°μλ κ°μ λ¬Έμ κ° μμ΅λλ€. @bhundven μ΄ λ¬Έμ λ₯Ό μ°Ύλ λ° ν μκ°μ 보λκ³ μλ§λ λ λ€λ₯Έ 2λ₯Ό κ΅¬ν΄ μ£Όμ μ κ°μ¬ν©λλ€.
μ¬κΈ°μμ λμΌν λ¬Έμ κ° minikube v1.18.1 λ° awx-operator κ°λ°μμ μ μλν©λλ€.
κ·Έλ¦¬κ³ λλ λ΄κ° λκ° μλͺ»νκ³ μλ€κ³ μκ°νκ³ λͺ¨λ κ²μ΄ μ§λ μ£Όμ μ μλνμ΅λλ€.
ν΄κ²° λ°©λ²μ κ°μ¬λ립λλ€. Ansible νμμ μ΄ λ¬Έμ λ₯Ό μ΅λν 빨리 ν΄κ²°νκΈ°λ₯Ό λ°λλλ€. ππ½
brew λ₯Ό μ¬μ©νμ¬ Mac OSμμ 1.18.1λ‘ λμκ°λ €κ³ μλνμ§λ§ brewκ° μ€μμΉλ₯Ό μ κ±°νκ³ minikubeλ λ²μ κ΄λ¦¬μ λν brewμ μ΄ν΄μ λ°λΌ λ²μ μ΄ μ§μ λμ§ μμ΅λλ€. κ·Έλμ μ¬λ¬λΆμ μ΄κ²μ μ λνκΈ° μν΄ μ΄λ»κ² qinikube 1.18.1λ‘ λμκ°λμ? brewλ μ΄μ μ§μλλ μ΅μ λ²μ μ μννΈμ¨μ΄ ν¨ν€μ§ λ²μ λ§ μ§μν©λλ€...
μ΄ λ¬Έμ μ λν΄ μ κ°μ€λ½κ² μκ°ν©λλ€. μ΄ λ²κ·Έλ₯Ό μκ³ μμ΅λλ€. https://github.com/kubernetes/minikube/pull/10879 λ₯Ό λμ νλλ° λΆννλ ν΅ν© ν μ€νΈμμ κ°μ§λμ§ μμμ΅λλ€. λͺ¨λ λΆνΈμ λλ € μ£μ‘ν©λλ€. μ΄κ²μ΄ μ΅μ°μ κ³Όμ κ° λ κ²μ λλ€. λ€μ λ²μ μμ μμ λ μμ μ΄λ―λ‘ μ λ°μ΄νΈλ₯Ό μν΄ https://github.com/kubernetes/minikube/issues/11121 μ μΆμ
μλ
νμΈμ awx-operator κ°λ°μ λ° μ¬μ©μ,
μ΄ λ¬Έμ μ λν΄ μ£μ‘ν©λλ€. μΈκ·Έλ μ€ λ¦¬μμ€λ₯Ό μμ±ν μ μλλ‘ PR https://github.com/kubernetes/minikube/pull/11189λ₯Ό ν΅ν΄ ν΄κ²° λ°©λ²μ μΆκ°ν©λλ€.
κ·Έλ¦¬κ³ μΈκ·Έλ μ€ λ¦¬μμ€λ₯Ό μμ±ν μ μλμ§ νμΈνκΈ° μν΄ ν΅ν© ν
μ€νΈ ν¨ν΄μ μΆκ°ν©λλ€.
awx-operatorκ° μ΄μ μμ λ²μ (extensions/v1beta1)μ μ¬μ©νλ κ² κ°μ§λ§ https://github.com/kubernetes/minikube/pull/11189 κ° μ΄ λ²μ μμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν κ²μ΄λΌκ³ μκ°ν©λλ€(μ΄λ―Έ λ‘컬μμ ν
μ€νΈνμ΅λλ€) .
https://github.com/ansible/awx-operator/blob/ee9800c258feaae24fd9bd606caa7076c9781c51/roles/installer/templates/tower_ingress.yaml.j2#L3 -L5
μ
λ°μ΄νΈλ₯Ό μν΄ kubernetes/minikube#11121 λ° https://github.com/kubernetes/minikube/pull/11189 λ₯Ό μΆμ νμμμ€.
κ°μ¬ν©λλ€,
μλ νμΈμ @govargo - μκ°μ λ΄μ΄ λμμ£Όμ μ κ°μ¬ν©λλ€.
FWIW, networking.k8s.io/v1
λ₯Ό μ¬μ©νλλ‘ Ingress
κ°μ²΄λ₯Ό μ
λ°μ΄νΈνλ €κ³ νμ§λ§ μ¬μ ν λμΌν μ€λ₯κ° νμλ©λλ€. minikubeλ₯Ό μ§μ λΉλνλ λ°©λ²μ μμλΌ μ μλ€λ©΄ λ§ν¬ν ν¨μΉλ₯Ό ν
μ€νΈνλ €κ³ ν©λλ€. κ·Έλ μ§ μμΌλ©΄ λ€μ λ²μ μ΄ μΆμλ λκΉμ§ κΈ°λ€λ¦¬κ² μ΅λλ€.
@govargo μ΄μ μ€μΉ νλ‘κ·Έλ¨μ΄ μ€ν¨ν λΆλΆμ μ§λμ³€μ§λ§ minikubeμμ μλΉμ€ URLμ κ°μ Έμ€λ €κ³ νλ©΄ λ€μκ³Ό κ°μ΄ νμλ©λλ€.
$ minikube service awx-service --url
πΏ service default/awx-service has no node port
λ΄ λ§μ§λ§ λκΈμ 무μνμΈμ. μ°λ¦¬ μͺ½μμ λ λ€λ₯Έ λ¬Έμ κ° λ°μν κ² κ°μ΅λλ€. λμμ μ£Όμ μ κ°μ¬ν©λλ€ @govargo
λͺ¨λ κ²μ μμΆνκΈ° μν΄: μ΄κ²μ minikubeμ λ€μ λ²μ μμ μμ λ κ²μ λλ€.
μλ νμΈμ shanemcd
minikubeλ₯Ό μ§μ λΉλνλ λ°©λ²μ μμλΌ μ μλ€λ©΄ λ§ν¬ν ν¨μΉλ₯Ό ν μ€νΈνλ €κ³ ν©λλ€.
ν¨μΉλ minikubeλ₯Ό μλνκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ ν μ μμ΅λλ€.
Method1: Build latest application
$ mkdir -p $GOPATH/src/k8s.io/
$ cd $GOPATH/src/k8s.io/
$ git clone https://github.com/kubernetes/minikube.git
$ cd minikube
# output file will be generated to ./out directory(e.g. out/minikube)
$ make
Method2: Use built binary
# built binaries are put in object storage
# http://storage.googleapis.com/minikube-builds/11189/minikube-linux-amd64
# http://storage.googleapis.com/minikube-builds/11189/minikube-darwin-amd64
# http://storage.googleapis.com/minikube-builds/11189/minikube-windows-amd64.exe
# in case of macOS, use minikube-darwin-amd64
$ curl -LO http://storage.googleapis.com/minikube-builds/11189/minikube-darwin-amd64
$ chmod +x minikube-darwin-amd64
$ sudo mv minikube-darwin-amd64 /usr/local/bin/minikube
λͺ¨λ κ²μ μμΆνκΈ° μν΄: μ΄κ²μ minikubeμ λ€μ λ²μ μμ μμ λ κ²μ λλ€.
μ, λ€μ λ²μ 릴리μ€μμλ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν κ²μ λλ€.
κ°μ¬ν©λλ€.
μ μ νμ t4g.medium
μ Ubuntu 20.04.2 LTS
λͺ¨λ minikube_1.18.1-0_arm64.deb
λ° minikube_1.20.0.beta.0-0_arm64.deb
λ΄κ°μ§κ³ μμ΄ μ¦κ°μ μΈ μΆ©λ standard_init_linux.go:219: exec user process caused: exec format error
ν minikube kubectl apply
, λλ μλ§λ μλͺ»λ / νΌλμ€λ¬μ΄ μμΉ λλ 무μΈκ°λ₯Ό μ€ννλ €κ³ ν κ²μ
λλ€.
λ§€μ° λ°λλΌ μ¬μμ°
$ sudo apt update
$ sudo apt upgrade -y
$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
$ sudo usermod -aG docker ubuntu ; newgrp docker
$ curl -LO https://github.com/kubernetes/minikube/releases/download/v1.20.0-beta.0/minikube_1.20.0.beta.0-0_arm64.deb
$ sudo dpkg -i minikube_1.20.0.beta.0-0_arm64.deb
$ minikube start
π minikube v1.20.0-beta.0 on Ubuntu 20.04 (arm64)
β¨ Automatically selected the docker driver. Other choices: none, ssh
π Starting control plane node minikube in cluster minikube
π Pulling base image ...
πΎ Downloading Kubernetes v1.20.2 preload ...
> preloaded-images-k8s-v10-v1...: 514.95 MiB / 514.95 MiB 100.00% 126.56 M
> gcr.io/k8s-minikube/kicbase...: 327.13 MiB / 327.13 MiB 100.00% 48.85 Mi
> gcr.io/k8s-minikube/kicbase...: 327.13 MiB / 327.13 MiB 100.00% 16.23 Mi
π₯ Creating docker container (CPUs=2, Memory=2200MB) ...
π³ Preparing Kubernetes v1.20.2 on Docker 20.10.6 ...
βͺ Generating certificates and keys ...
βͺ Booting up control plane ...
βͺ Configuring RBAC rules ...
π Verifying Kubernetes components...
βͺ Using image gcr.io/k8s-minikube/storage-provisioner:v5
π Enabled addons: storage-provisioner, default-storageclass
π‘ kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
π Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
$ minikube kubectl -- apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.9.0/deploy/awx-operator.yaml
$ minikube kubectl get pods
awx-operator-5595d6fc57-tlw8p 0/1 CrashLoopBackOff 1 15s
minikube v1.20.0μ΄ μΆμλμμ΅λλ€.
https://github.com/kubernetes/minikube/releases/tag/v1.20.0
μ΄ λ²μ μλ μ΄ ingress(networking.k8s.io/v1) λ¬Έμ μ μμ μ¬νμ΄ ν¬ν¨λμ΄ μμ΅λλ€.
κ°μ¬ν©λλ€.
λλ μ¬μ ν μΈκ·Έλ μ€μ apiVersionμ μ€μ ν μ μλ #245λ₯Ό μ»μΌλ €κ³ λ
Έλ ₯νκ³ μμ§λ§ μ§κΈμ μ¬μ ν extensions/v1beta1
νκ³ μμΌλ©° λ€λ₯Έ λ¬Έμ κ° λ°μν©λλ€.
κ°μ₯ μ μ©ν λκΈ
minikube v1.20.0μ΄ μΆμλμμ΅λλ€.
https://github.com/kubernetes/minikube/releases/tag/v1.20.0
μ΄ λ²μ μλ μ΄ ingress(networking.k8s.io/v1) λ¬Έμ μ μμ μ¬νμ΄ ν¬ν¨λμ΄ μμ΅λλ€.
κ°μ¬ν©λλ€.