Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt het proces beschreven voor het inschakelen van een clusterbrede proxy op een Azure Red Hat OpenShift-cluster. Met deze functie kunnen productieomgevingen directe toegang tot internet weigeren en in plaats daarvan een HTTP- of HTTPS-proxy beschikbaar hebben. In dit artikel worden de specifieke configuratiestappen beschreven die nodig zijn voor een Azure Red Hat OpenShift-cluster. Zie de Red Hat-documentatie voor meer informatie over de werking van de proxyfunctie voor het clusterbrede cluster voor het OpenShift Container Platform.
Bij het configureren van een clusterbrede proxy is het belangrijk om inzicht te hebben in de volgende gevolgen:
- Opnieuw opstarten van knooppunt: Als u de proxy inschakelt, worden knooppunten op rolling wijze opnieuw opgestart, vergelijkbaar met een clusterupdate. Dit is nodig omdat er nieuwe machineconfiguraties worden toegepast.
-
Serviceonderbrekingen: Om serviceonderbrekingen tijdens dit proces te voorkomen, is het van cruciaal belang om de
noProxylijst voor te bereiden zoals beschreven.
Belangrijk
Als u niet voldoet aan de instructies die in dit artikel worden beschreven, kan dit leiden tot onjuiste routering van clusternetwerkverkeer. Dit kan leiden tot problemen met de werkbelasting, zoals het mislukken van het ophalen van installatiekopieƫn.
Bereik van proxyconfiguratie voor het hele cluster
- OpenShift-workloads: De instructies in dit artikel zijn alleen van toepassing op OpenShift-workloads. Toepassingsworkloads voor proxy's vallen buiten het bereik van dit artikel.
- OpenShift Container Platform-versies: De proxy voor het hele cluster wordt ondersteund in versies van OpenShift Container Platform die worden beschreven in het ondersteuningsbeleid van Azure Red Hat OpenShift.
Als u de instructies in dit artikel volgt en de noProxy lijst voorbereidt, worden onderbrekingen geminimaliseerd en zorgt u ervoor dat de overgang soepel verloopt wanneer de proxy wordt ingeschakeld.
Vereisten en vrijwaring
- Raadpleeg de OpenShift-documentatie voor het configureren van de proxy voor het hele cluster voor meer informatie.
- Proxyserver en certificaten: u hebt naar verwachting al een proxyserver en certificaten.
- Azure Red Hat OpenShift SRE biedt geen ondersteuning voor uw proxyserver of certificaten.
Overzicht
- Verzamel de vereiste eindpuntwaarden voor gebruik in de
noProxylijst. - Schakel de proxy voor het hele cluster in met behulp van de verzamelde gegevens voor
noProxy. - Controleer of de
noProxylijst en de proxy voor het hele cluster zijn geconfigureerd.
De vereiste gegevens verzamelen voor noProxy
Controleer de proxystatus voor het hele cluster door de volgende opdracht uit te voeren:
oc get proxy cluster -o yamlDe
specvelden enstatusvelden moeten leeg zijn, waarin wordt weergegeven dat deze niet is ingeschakeld. Als deze niet leeg is, is deze mogelijk eerder geconfigureerd.apiVersion: config.openshift.io/v1 kind: Proxy metadata: creationTimestamp: "xxxx-xx-xxTxx:xx:xxZ" generation: name: cluster resourceVersion: uid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx spec: trustedCA: name: "" status: {}Let op het IP-adres van IMDS:
169.254.169.254Als u geen aangepaste DNS gebruikt, noteert u het IP-adres van Azure DNS:
168.63.129.16Let op de localhost- en servicedomeinen:
localhost127.0.0.1.svc.cluster.local
Haal de
gatewayDomainsopdracht op door de volgende opdracht uit te voeren:oc get cluster cluster -o jsonpath='{.spec.gatewayDomains}'Bekijk de volgende voorbeelduitvoer:
[ "agentimagestorews01.blob.core.windows.net", "agentimagestorecus01.blob.core.windows.net", "agentimagestoreeus01.blob.core.windows.net", "agentimagestoreeus01.blob.core.windows.net", "agentimagestoreeas01.blob.core.windows.net", "eastus-shared.prod.warm.ingest.monitor.core.windows.net", "...", // Many other endpoints ]Haal de URL's van uw clusterdomein op.
Maak de clusterspecifieke URL's voor de API- en toepassingsdomeinen.
een. Haal het toepassingsdomein op door de volgende opdracht uit te voeren:
az aro show -n <CLUSTER_NAME> -g <RESOURCE_GROUP_NAME> --query "consoleProfile.url" -o tsvBekijk de volgende voorbeelduitvoer:
https://console-openshift-console.apps.xxxxxxxx.westus2.aroapp.io/Houd alleen het deel beginnend met
.apps.xxxxxxxxvoor gebruik in denoProxylijst. Neem de volgvolgende '/' niet op.Zie het volgende voorbeeld:
.apps.xxxxxxxx.westus2.aroapp.iob. Haal de API-domeinen op.
Gebruik de uitvoer van de vorige opdracht om
.appste vervangen doorapienapi-intin de URL om de API-domeinen voor denoProxylijst te krijgen.Zie het volgende voorbeeld:
api.xxxxxxxx.westus2.aroapp.io api-int.xxxxxxxx.westus2.aroapp.ioHaal de CIDR-bereiken op.
een. Haal de
addressPrefixsubnetten van het werknemersprofiel op door de volgende opdracht uit te voeren:SUBNET_ID=$(az aro show -n <CLUSTER_NAME> -g <RESOURCE_GROUP_NAME> --query "workerProfiles[].subnetId" -o tsv) az network vnet subnet show --ids "$SUBNET_ID" --query "addressPrefix || [].addressPrefix" -o tsvVoorbeelduitvoer:
10.0.1.0/24b. Haal de
addressPrefixop van het masterprofielsubnet door de volgende opdracht uit te voeren:SUBNET_ID=$(az aro show -n <CLUSTER_NAME> -g <RESOURCE_GROUP_NAME> --query "masterProfile.subnetId" -o tsv) az network vnet subnet show --ids "$SUBNET_ID" --query "addressPrefix" -o tsvVoorbeelduitvoer:
10.0.0.0/24Hoofdstuk c. Haal de
podCidropdracht op door de volgende opdracht uit te voeren:az aro show -n <CLUSTER_NAME> -g <RESOURCE_GROUP_NAME> --query "networkProfile.podCidr" -o tsvVoorbeelduitvoer:
10.128.0.0/14d. Haal de
serviceCidropdracht op door de volgende opdracht uit te voeren:az aro show -n <CLUSTER_NAME> -g <RESOURCE_GROUP_NAME> --query "networkProfile.serviceCidr" -o tsvVoorbeelduitvoer:
172.30.0.0/16Combineer de verzamelde gegevens in uw
noProxylijst die worden gebruikt voor het bijwerken van het proxyclusterobject in de volgende sectie.
Proxy voor het hele cluster inschakelen
Maak de
user-ca-bundleconfigmap in deopenshift-confignaamruimte om het juiste certificaat te gebruiken.een. Maak een bestand
user-ca-bundle.yamlmet de volgende inhoud en geef de waarden op van uw MET PEM gecodeerde certificaten:apiVersion: v1 data: ca-bundle.crt: | <MY_PEM_ENCODED_CERTS> kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config-
data.ca-bundle.crt: Deze gegevenssleutel moet de naam ca-bundle.crt hebben. -
data.ca-bundle.crt | <MY_PEM_ENCODED_CERTS>: Een of meer PEM-gecodeerde X.509-certificaten die worden gebruikt om het identiteitscertificaat van de proxy te ondertekenen. -
metadata.name: De naam van de configuratiekaart waarnaar wordt verwezen vanuit het proxyobject. -
metadata.namespace: De configuratietoewijzing moet zich in deopenshift-confignaamruimte bevinden.
b. Maak de ConfigMap door de volgende opdracht uit te voeren:
oc create -f user-ca-bundle.yamlHoofdstuk c. Bevestig het maken van de
user-ca-bundleConfigMap door de volgende opdracht uit te voeren:oc get cm -n openshift-config user-ca-bundle -o yamlBekijk de volgende voorbeelduitvoer:
apiVersion: v1 data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- <CERTIFICATE_DATA> -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "xxxx-xx-xxTxx:xx:xxZ" name: user-ca-bundle namespace: openshift-config resourceVersion: "xxxxxx" uid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-
Werk het proxyclusterobject bij met behulp van
oc editen configureer vervolgens het proxyobject met behulp van de eerder verzamelde informatie.een. Voer de volgende opdracht uit:
oc edit proxy/clusterWerk de volgende velden bij of voeg deze toe:
-
spec.httpProxy: Een proxy-URL om te gebruiken voor het maken van HTTP-verbindingen buiten de cluster. Het URL-schema moet zijnhttp. -
spec.httpsProxy: Een proxy-URL om te gebruiken voor het maken van HTTPS-verbindingen buiten de cluster. -
spec.noProxy: Dit is de door komma's gescheiden lijst met eindpunten die zijn verkregen in de bovenstaande stappen voor het verzamelen van de vereiste gegevens voor noProxy-stappen . -
spec.trustedCA: Een verwijzing naar de configuratietoewijzing in deopenshift-confignaamruimte die andere CA-certificaten bevat die vereist zijn voor het proxyen van HTTPS-verbindingen. Houd er rekening mee dat de configuratiekaart al moet bestaan voordat u ernaar verwijst. In dit geval is dit de naam van de configuratietoewijzing die hierboven is gemaakt. Dit is user-ca-bundle.
b. Bevestig de configuratie door de volgende opdracht uit te voeren:
oc get proxy cluster -o yamlBekijk de volgende voorbeelduitvoer:
apiVersion: config.openshift.io/v1 kind: Proxy metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"config.openshift.io/v1","kind":"Proxy","metadata":{"annotations":{},"name":"cluster"},"spec":{"httpProxy":"http://10.0.0.15:3128","httpsProxy":"https://10.0.0.15:3129","noProxy":"agentimagestorecus01.blob.core.windows.net,agentimagestoreeus01.blob.core.windows.net,agentimagestorewus01.blob.core.windows.net,agentimagestoreweu01.blob.core.windows.net,agentimagestoreeas01.blob.core.windows.net,australiaeast-shared.prod.warm.ingest.monitor.core.windows.net,gcs.prod.monitoring.core.windows.net,gsm1130809042eh.servicebus.windows.net,gsm1130809042xt.blob.core.windows.net,gsm119650579eh.servicebus.windows.net,gsm119650579xt.blob.core.windows.net,gsm810972145eh.servicebus.windows.net,gsm810972145xt.blob.core.windows.net,maupdateaccount.blob.core.windows.net,maupdateaccount2.blob.core.windows.net,maupdateaccount3.blob.core.windows.net,maupdateaccount4.blob.core.windows.net,production.diagnostics.monitoring.core.windows.net,qos.prod.warm.ingest.monitor.core.windows.net,login.microsoftonline.com,management.azure.com,arosvc.azurecr.io,arosvc.australiaeast.data.azurecr.io,imageregistryvmxx7.blob.core.windows.net,.cluster.local,.svc,api-int.vlsi41ah.australiaeast.aroapp.io,localhost,10.0.0.0/8","trustedCA":{"name":"user-ca-bundle"}}} creationTimestamp: "xxxx-xx-xxTxx:xx:xxZ" generation: 17 name: cluster resourceVersion: "xxxxxxx" uid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx spec: httpProxy: http://10.0.0.15:3128 httpsProxy: https://10.0.0.15:3129 noProxy: agentimagestorecus01.blob.core.windows.net,agentimagestoreeus01.blob.core.windows.net,agentimagestorewus01.blob.core.windows.net,agentimagestoreweu01.blob.core.windows.net,agentimagestoreeas01.blob.core.windows.net,australiaeast-shared.prod.warm.ingest.monitor.core.windows.net,gcs.prod.monitoring.core.windows.net,gsm1130809042eh.servicebus.windows.net,gsm1130809042xt.blob.core.windows.net,gsm119650579eh.servicebus.windows.net,gsm119650579xt.blob.core.windows.net,gsm810972145eh.servicebus.windows.net,gsm810972145xt.blob.core.windows.net,maupdateaccount.blob.core.windows.net,maupdateaccount2.blob.core.windows.net,maupdateaccount3.blob.core.windows.net,maupdateaccount4.blob.core.windows.net,production.diagnostics.monitoring.core.windows.net,qos.prod.warm.ingest.monitor.core.windows.net,login.microsoftonline.com,management.azure.com,arosvc.azurecr.io,arosvc.australiaeast.data.azurecr.io,imageregistryvmxx7.blob.core.windows.net,.cluster.local,.svc,api-int.vlsi41ah.australiaeast.aroapp.io,localhost,10.0.0.0/8 trustedCA: name: user-ca-bundle status: httpProxy: http://10.0.0.15:3128 httpsProxy: https://10.0.0.15:3129 noProxy: .cluster.local,.svc,10.0.0.0/8,10.128.0.0/14,127.0.0.0/8,127.0.0.1,169.254.169.254,172.30.0.0/16,agentimagestorecus01.blob.core.windows.net,agentimagestoreeas01.blob.core.windows.net,agentimagestoreeus01.blob.core.windows.net,agentimagestoreweu01.blob.core.windows.net,agentimagestorewus01.blob.core.windows.net,api-int.vlsi41ah.australiaeast.aroapp.io,arosvc.australiaeast.data.azurecr.io,arosvc.azurecr.io,australiaeast-shared.prod.warm.ingest.monitor.core.windows.net,gcs.prod.monitoring.core.windows.net,gsm1130809042eh.servicebus.windows.net,gsm1130809042xt.blob.core.windows.net,gsm119650579eh.servicebus.windows.net,gsm119650579xt.blob.core.windows.net,gsm810972145eh.servicebus.windows.net,gsm810972145xt.blob.core.windows.net,imageregistryvmxx7.blob.core.windows.net,localhost,login.microsoftonline.com,management.azure.com,maupdateaccount.blob.core.windows.net,maupdateaccount2.blob.core.windows.net,maupdateaccount3.blob.core.windows.net,maupdateaccount4.blob.core.windows.net,production.diagnostics.monitoring.core.windows.net,qos.prod.warm.ingest.monitor.core.windows.net-
Wacht tot de nieuwe machineconfiguratie op alle knooppunten is uitgerold en de clusteroperators een gezonde status rapporteren.
een. Bevestig de status van het knooppunt door de volgende opdracht uit te voeren:
oc get nodesBekijk de volgende voorbeelduitvoer:
NAME STATUS ROLES AGE VERSION mycluster-master-0 Ready master 10d v1.xx.xx+xxxxxxx mycluster-master-1 Ready master 10d v1.xx.xx+xxxxxxx mycluster-master-2 Ready master 10d v1.xx.xx+xxxxxxx mycluster-worker-australiaeast1-mvzqr Ready worker 10d v1.xx.xx+xxxxxxx mycluster-worker-australiaeast2-l9fgj Ready worker 10d v1.xx.xx+xxxxxxx mycluster-worker-australiaeast3-pz9rw Ready worker 10d v1.xx.xx+xxxxxxxb. Bevestig de status van de clusteroperator door de volgende opdracht uit te voeren:
oc get coBekijk de volgende voorbeelduitvoer:
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE aro vxxxxxxxx True False False 10d authentication 4.xx.xx True False False 8m25s cloud-controller-manager 4.xx.xx True False False 10d cloud-credential 4.xx.xx True False False 10d cluster-autoscaler 4.xx.xx True False False 10d ... (Many other components) ... storage 4.xx.xx True False False 10dOpmerking
Als u de
user-ca-bundlemap nodig hebt, bevindt deze zich in de volgende map (maar dit is niet vereist voor dit proces):/etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crt
Configuratie controleren noProxy
Als u de proxyconfiguratie wilt controleren, controleert u de status van de clusteroperators. Als het noProxy veld onjuist is geconfigureerd, kunnen meerdere clusteroperators een Degraded: True status invoeren. Dit kan het gevolg zijn van verschillende problemen, waaronder, maar niet beperkt tot, ImagePullBack fouten, ongeldige certificaten of algemene verbindingsproblemen. Daarnaast kunnen sommige operators een Progressing: True status hebben vanwege vergelijkbare onderliggende oorzaken.
Controleer de status van de clusteroperators door de volgende opdracht uit te voeren:
oc get coDe uitvoer interpreteren (status in orde): Als het
noProxyveld juist is geconfigureerd, moet de uitvoer er ongeveer uitzien als in het volgende voorbeeld:NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE aro vxxxxxxxx.xx True False False 15d authentication 4.xx.xx True False False 15d cloud-controller-manager 4.xx.xx True False False 15d cloud-credential 4.xx.xx True False False 15dOpmerking
Het aantal en het type clusteroperator kunnen variƫren. Het ingekorte voorbeeld dat wordt getoond, dient om een gezonde toestand te illustreren voor ondersteunde operators.
De uitvoer interpreteren (onjuist geconfigureerd): Als het
noProxyveld onjuist is geconfigureerd, lijkt de uitvoer mogelijk op het volgende voorbeeld:NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE aro vxxxxxxxx.xx True False False 45h authentication 4.xx.xx False True True 24h OAuthServerRouteEndpointAccessibleControllerAvailable: Get "https://oauth-openshift.apps.mm6osebam6b03b9df3.eastus2euap.aroapp.io/healthz": Not Found control-plane-machine-set 4.xx.xx True False False 46h SyncLoopRefreshProgressing: Working toward version 4.15.35, 1 replicas available image-registry 4.xx.xx True True False 45h NodeCADaemonProgressing: The daemon set node-ca is deployed Progressing: The deployment has not completed ingress 4.xx.xx True True True 83m The "default" ingress controller reports Degraded=True: DegradedConditions: One or more other status conditions indicate a degraded state: CanaryChecksSucceeding=False (CanaryChecksRepetitiveFailures: Canary route checks for the default ingress controller are failing) machine-config 4.xx.xx False False True 43h Cluster not available for [{operator 4.15.35}]: error during waitForControllerConfigToBeCompleted: [context deadline exceeded, controllerconfig is not completed: status for ControllerConfig machine-config-controller is being reported for 6, expecting it for 13] storage 4.xx.xx True True False 45h AzureFileCSIDriverOperatorCRProgressing: AzureFileDriverControllerServiceControllerProgressing: Waiting for Deployment to deploy pods AzureFileCSIDriverOperatorCRProgressing: AzureFileDriverNodeServiceControllerProgressing: Waiting for DaemonSet to deploy node podsOpmerking
Weergegeven is alleen een afgekapte voorbeelduitvoer. Andere clusteroperators kunnen ook een
Degraded: Truestatus melden met verschillende fouten als gevolg van de onjuiste configuratie vannoProxy.
Clusterbrede proxy verwijderen
Zie de Red Hat OpenShift-documentatie voor informatie over het verwijderen van de proxy voor het hele cluster.