New features of Azure Cloud Provider in OpenShift Container Platform 3.10

Takayoshi Tanaka
Takayoshi TanakaSoftware Engineer at Red Hat K.K.
New features of
Azure Cloud Provider
in OpenShift 3.10
Takayoshi Tanaka, Software Maintenance Engineer
tatanaka@redhat.com
Takeaways
Let you know Azure Cloud Provider is getting more and
more useful.
Let you know some upstream project/feature can work on
OpenShift (however, without support)
Agenda
What’s Azure Cloud Provider in OpenShift
Big Changes for Azure Cloud Provider
Experimental Features
Azure Cloud Provider
Concepts Underlying the Cloud Controller Manager
Azure Cloud Provider
kubernetes:
◦integrating Cloud features
◦Azure is one of the implementations
OpenShift
◦includes kubernetes
= almost all Cloud Provider features could work
◦Our tested features is describes in product documents
OpenShift 3.10 on Azure
includes kubernetes 1.10 – actually 1.10.1 + α
kubernetes now supports, but OpenShift doesn’t:
◦ cluster auto scale
◦ https://github.com/feiskyer/autoscaler/blob/master/cluster-
autoscaler/cloudprovider/azure/README.md
◦ Azure VM Scale Set
Private Preview in OpenShift in the future
◦ Windows Container Support
◦ If you have an interest, contact Red Hat sales in charge of you, or me.
Red Hat OpenShift on Azure
https://www.redhat.com/en/about/press-releases/red-hat-and-microsoft-co-
develop-first-red-hat-openshift-jointly-managed-service-public-cloud
https://azure.microsoft.com/en-gb/blog/openshift-on-azure-the-easiest-fully-managed-
openshift-in-the-cloud/
https://www.youtube.com/watch?v=WDr9TSyK9DA
Looking back the announcment
10000 feet overview
◦ Launch OpenShift cluster with one command
◦ First-class citizen in Azure
◦ Including Open Service Broker for Azure
If you have an interest, please contact me later. I'll pass your info to our team.
$ az openshift create -n oscluster -g osrg `
–node-vm-size Standard_DS4_v3`
--l eastus
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
Before starting…
Requirements for Azure Cloud Provider
Virtual Machines (VMs) must belong to a single resource group & VNET
◦ Some improvements are ongoing
VM name requirement ➔ Next page
Internal Load Balancer is unavailable for master public end point
OCP 3.7 or later is required for Managed Disk
Service Type: LoadBalancer supports only Basic Azure Load Balancer
◦ Node VMs must belong to Availability Set (* I’ll explain later)
Sovereign Cloud (Azure Germany, China etc) are available.
◦ Some extra configurations are required
VM scale set is not tested in OCP
Node Name = VM name:
DO NOT include capital letters
Be sure these values are same
◦ Azure VM name: az vm create –n <name>
◦ Internal DNS Name: az nic create --internal-dns-name <name>
◦ Hostname (DO not edit manually)
◦ OpenShift node name (inventory file)
This name should not include capital letters
◦ OK: ocp-node1
◦ NG: OCP-Node1
Big Changes
Big Changes
Installer Improvement
Upgrade Issue (3.9 to 3.10)
Azure Disk/File Mount options
Azure File default permission changed to 0755
Improved Azure Disk mount/unmount performance
Installer Improvement:
Internal Hostname in Azure NIC
Be sure to set internal hostname in the Azure NIC.
- Create a new NIC
- Apply to the existing NIC
$ az network nic create -g MyResourceGroup --vnet-
name MyVnet --subnet MySubnet -n MyNic --internal-
dns-name node1
$ az network nic update -g MyResourceGroup -
n MyNic --internal-dns-name node1
Installer Improvement:
Support creating azure.conf
Advanced installer creates azure.conf.
Note: If you need more parameters such as VNET or security group,
you have to add them to azure.conf and restart services manually.
openshift_cloudprovider_kind=azure
openshift_cloudprovider_azure_client_id=<AAD_app_id>
openshift_cloudprovider_azure_client_secret=<AAD_password>
openshift_cloudprovider_azure_tenant_id=<AAD_tenant_id>
openshift_cloudprovider_azure_subscription_id=<subscription_id>
openshift_cloudprovider_azure_resource_group=<resource_group_name>
openshift_cloudprovider_azure_location=<location>
How to create a service principal?
Execute the following three commands.
If you’re using Azure Cloud Shell, try the following script.
https://gist.github.com/tanaka-
takayoshi/802fcfbd8d544495977c2e8660604bc3
$ az account show -o json
$ az group show -n <resource_group_name> -o json
$ az ad sp create-for-rbac --name <app_name> --role
contributor --scopes <resource_group_id> -o json
Installer Improvement:
Support creating storage class
Advanced installer creates storage class for Azure Disk/File.
openshift_storageclass_name=slow-disk
openshift_storageclass_provisioner=azure-disk
openshift_storageclass_parameters={'storageaccounttype'
: 'Standard_LRS', 'kind': 'Managed'}
Upgrade Issue (3.9 to 3.10):
relocate azure.conf
OpenShift 3.10 doesn’t allow to locate azure.conf under /etc/azure.
Use /etc/origin/cloudprovider instead of /etc/azure.
Before upgrading the cluster, please copy the file and edit the master and
node configuration files.
Azure Disk/File Mount options
You can specify mount options for Azure Disk and Azure File as a Volume.
Storage Class and Persistent Volume has a mountOptions parameters.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: slow
mountOptions:
- dir_mode=0777
- file_mode=0777
parameters:
kind: Managed
storageaccounttype: Standard_LRS
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
apiVersion: v1
kind: PersistentVolume
metadata:
name: static-pv-file
spec:
accessModes:
- ReadWriteOnce
azureFile:
secretName: azure-secret
secretNamespace: openshift
shareName: share1
capacity:
storage: 1Gi
mountOptions:
- dir_mode=0777
- file_mode=0777
persistentVolumeReclaimPolicy: Delete
Azure File default permission
changed to 0755
The permission changed from 0777 to 0755. (at OCP 3.9 or newer)
The owner of the directory is different from the UID of container by default.
◦ https://docs.openshift.com/container-
platform/3.10/install_config/persistent_storage/persistent_storage_azure_file.html#azu
re-file-before-you-begin
Configure mountOptions to ensure the permission.
Use SecurityContext to run a container by specific GID. (OCP 3.10)
Use SecurityContext (RunAsUser) & mountOptions (uid) to run a
container by specific UID.
Improved Azure Disk
mount/unmount performance
It takes huge time to unmount and mount an Azure Disk when a new version of pod is
located another node.
It could happen when a new version of pod is located to a different node than the node
where a current version of pod is running.
pod pod
Experimental
Features
RED HAT DOESN’T TESTED THESE FEATURES.
Experimental Features
Advanced Options for ServiceType: LoadBalancer
Azure REST API authentication
Monitoring
Service Type: LoadBalancer
Node Virtual Machines
apiVersion: v1
kind: Service
metadata:
name: alb-svc
spec:
loadBalancerIP: 40.121.183.52
type: LoadBalancer
ports:
- port: 80
selector:
app: my-app
IP should be created in advance.
Or you don’t have to specify the ip.
Advanced Options
Internal Load Balancer
Internal Load Balancer with subnet
DNS Label name
https://github.com/kubernetes/cloud-provider-azure/blob/master/docs/development-
loadbalancer.md
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet"
annotations:
service.beta.kubernetes.io/azure-dns-label-name: ""
Service Type: LoadBalancer
for huge cluster
One Availability Set has maximum 200 VMs.
If you deploy over 200 OpenShift nodes,
you have to deploy two or more
AvailabilitySet.
One ALB can have only one AvailabilitySet.
So, you have to deploy one ALB per
AvailabilitySet.
Node VMs – group A Node VMs – group B
annotations:
service.beta.kubernetes.io/azure-load-balancer-mode: “group-a,group-b"
Azure REST API authentication:
Managed Service Identity
Managed Service Identity:
◦ You don’t have to provide password to configuration file
◦ https://docs.microsoft.com/en-us/azure/active-directory/managed-service-
identity/overview
Steps
◦ Enable MSI on all VMs for OpenShift nodes
◦ Grant your VM access to a Resource Group
◦ Update azure.conf
useManagedIdentityExtension: true
aadClientId:
aadClientSecret:
 Remove two lines
 Add this line
Monitoring - Prometheus
Prometheus monitors Azure API Request Duration Seconds & Error.
◦ Prometheus is Technology Preview at 3.10
1 of 28

Recommended

New features of Azure Cloud Provider at OCP 3.10 by
New features of Azure Cloud Provider at OCP 3.10New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10Takayoshi Tanaka
225 views28 slides
k8s-on-azure by
 k8s-on-azure k8s-on-azure
k8s-on-azureGanesh Pol
75 views5 slides
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준... by
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...Amazon Web Services Korea
2.8K views73 slides
Running your Java EE 6 applications in the Cloud (FISL 12) by
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Arun Gupta
1.8K views52 slides
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017 by
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017Amazon Web Services Korea
8.2K views52 slides
docker-machine, docker-compose, docker-swarm 覚書 by
docker-machine, docker-compose, docker-swarm 覚書docker-machine, docker-compose, docker-swarm 覚書
docker-machine, docker-compose, docker-swarm 覚書じゅん なかざ
983 views19 slides

More Related Content

What's hot

Deploying a Kubernetes App with Amazon EKS by
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKSLaura Frank Tacho
744 views30 slides
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014 by
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014Amazon Web Services
12.2K views54 slides
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv by
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Amazon Web Services
5.9K views28 slides
Learn you some Ansible for great good! by
Learn you some Ansible for great good!Learn you some Ansible for great good!
Learn you some Ansible for great good!David Lapsley
1.7K views94 slides
Openstack Study Nova 1 by
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1Jinho Shin
5.4K views23 slides
Azure from scratch part 5 By Girish Kalamati by
Azure from scratch part 5 By Girish KalamatiAzure from scratch part 5 By Girish Kalamati
Azure from scratch part 5 By Girish KalamatiGirish Kalamati
492 views151 slides

What's hot(20)

Deploying a Kubernetes App with Amazon EKS by Laura Frank Tacho
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKS
Laura Frank Tacho744 views
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014 by Amazon Web Services
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014
(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014
Amazon Web Services12.2K views
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv by Amazon Web Services
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Amazon Web Services5.9K views
Learn you some Ansible for great good! by David Lapsley
Learn you some Ansible for great good!Learn you some Ansible for great good!
Learn you some Ansible for great good!
David Lapsley1.7K views
Openstack Study Nova 1 by Jinho Shin
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1
Jinho Shin5.4K views
Azure from scratch part 5 By Girish Kalamati by Girish Kalamati
Azure from scratch part 5 By Girish KalamatiAzure from scratch part 5 By Girish Kalamati
Azure from scratch part 5 By Girish Kalamati
Girish Kalamati 492 views
Dockerized .Net Core based app services in azure K8s by Ranjeet Bhargava
Dockerized .Net Core based app services in azure K8s Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s
Ranjeet Bhargava246 views
Artem Zhurbila - docker clusters (solit 2015) by Artem Zhurbila
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila3.5K views
Play Framework + Docker + CircleCI + AWS + EC2 Container Service by Josh Padnick
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Josh Padnick13.1K views
Fargate 를 이용한 ECS with VPC 1부 by Hyun-Mook Choi
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
Hyun-Mook Choi6.6K views
JAWS-UG ECS Best Practices #jawsug_ct by Yu Sudo
JAWS-UG ECS Best Practices #jawsug_ctJAWS-UG ECS Best Practices #jawsug_ct
JAWS-UG ECS Best Practices #jawsug_ct
Yu Sudo7.1K views
Kubernetes Boston — Custom High Availability of Kubernetes by Mike Splain
Kubernetes Boston — Custom High Availability of KubernetesKubernetes Boston — Custom High Availability of Kubernetes
Kubernetes Boston — Custom High Availability of Kubernetes
Mike Splain2K views
Migrate your traditional VM-based Clusters to Containers by Arun Gupta
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
Arun Gupta2.9K views
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day by Amazon Web Services Korea
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
Introduction to Packer and Suitcase: A Packer-based OS Image Build System by HubSpot Product Team
Introduction to Packer and Suitcase: A Packer-based OS Image Build SystemIntroduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Backbone.js by Jonathan Weiss
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
Jonathan Weiss2.6K views

Similar to New features of Azure Cloud Provider in OpenShift Container Platform 3.10

Automating Your Azure Environment by
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure EnvironmentMichael Collier
9.9K views47 slides
Deep Dive OpenShitt on Azure & .NET Core on OpenShift by
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftTakayoshi Tanaka
4.2K views56 slides
AWS Serverless Workshop by
AWS Serverless WorkshopAWS Serverless Workshop
AWS Serverless WorkshopMikael Puittinen
1.3K views35 slides
70 533 study material by
70 533 study material70 533 study material
70 533 study materialJayasimha reddy Madhira
219 views107 slides
Deploying your web application with AWS ElasticBeanstalk by
Deploying your web application with AWS ElasticBeanstalkDeploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalkJulien SIMON
2.2K views33 slides
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F... by
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...Davide Benvegnù
310 views48 slides

Similar to New features of Azure Cloud Provider in OpenShift Container Platform 3.10(20)

Automating Your Azure Environment by Michael Collier
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure Environment
Michael Collier9.9K views
Deep Dive OpenShitt on Azure & .NET Core on OpenShift by Takayoshi Tanaka
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Takayoshi Tanaka4.2K views
Deploying your web application with AWS ElasticBeanstalk by Julien SIMON
Deploying your web application with AWS ElasticBeanstalkDeploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalk
Julien SIMON2.2K views
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F... by Davide Benvegnù
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
Davide Benvegnù310 views
Azure DevOps Deployment Group by Riwut Libinuko
Azure DevOps Deployment GroupAzure DevOps Deployment Group
Azure DevOps Deployment Group
Riwut Libinuko812 views
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents by Andrey Karpov
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
Andrey Karpov84 views
Scaling Docker Containers using Kubernetes and Azure Container Service by Ben Hall
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
Ben Hall804 views
Deploying windows containers with kubernetes by Ben Hall
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall367 views
Automating Windows Azure by Ido Flatow
Automating Windows AzureAutomating Windows Azure
Automating Windows Azure
Ido Flatow2.3K views
Monitoring Containers at Scale - September Webinar Series by Amazon Web Services
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar Series
Amazon Web Services3.6K views
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h... by Erwin de Kreuk
DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h...
Erwin de Kreuk660 views
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho... by Erwin de Kreuk
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...
Erwin de Kreuk243 views
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor by Erwin de Kreuk
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data FactorTechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
Erwin de Kreuk266 views
Extending Kubectl.pptx by LibbySchulze
Extending Kubectl.pptxExtending Kubectl.pptx
Extending Kubectl.pptx
LibbySchulze204 views
Developing and deploying windows azure applications by Manish Corriea
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
Manish Corriea564 views
Moving a Windows environment to the cloud - DevOps Galway Meetup by Giulio Vian
Moving a Windows environment to the cloud - DevOps Galway MeetupMoving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway Meetup
Giulio Vian167 views
Java and windows azure cloud service by Jeffray Huang
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud service
Jeffray Huang857 views
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g... by Amazon Web Services
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...

More from Takayoshi Tanaka

deep dive distributed tracing by
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracingTakayoshi Tanaka
587 views48 slides
202202 open telemetry .net handson by
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handsonTakayoshi Tanaka
353 views28 slides
202109-New_Relic-for-csharp-engineers by
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineersTakayoshi Tanaka
633 views34 slides
20210129 azure webapplogging by
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapploggingTakayoshi Tanaka
545 views19 slides
20201127 .NET 5 by
20201127 .NET 520201127 .NET 5
20201127 .NET 5Takayoshi Tanaka
414 views27 slides
Unity(再)入門 by
Unity(再)入門Unity(再)入門
Unity(再)入門Takayoshi Tanaka
748 views20 slides

More from Takayoshi Tanaka(20)

202109-New_Relic-for-csharp-engineers by Takayoshi Tanaka
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
Takayoshi Tanaka633 views
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法 by Takayoshi Tanaka
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
Takayoshi Tanaka256 views
20191024 Get Start gRPC with ASP.NET by Takayoshi Tanaka
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET
Takayoshi Tanaka965 views
New Relicで始める、.NET Applications on AWSのObservability by Takayoshi Tanaka
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka1.1K views
C#エンジニアのためのdocker kubernetesハンズオン (再) by Takayoshi Tanaka
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)
Takayoshi Tanaka2.9K views
C#エンジニアのためのdocker kubernetesハンズオン by Takayoshi Tanaka
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオン
Takayoshi Tanaka1.1K views
20190604 Containerized MagicOnion on kubernetes with Observability with New R... by Takayoshi Tanaka
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka1.2K views
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能 by Takayoshi Tanaka
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka2.8K views
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能 by Takayoshi Tanaka
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka423 views
Try! Visual Studio 209 git feature by Takayoshi Tanaka
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
Takayoshi Tanaka1.8K views
(過去バージョン) Q#基礎 ver1.0 by Takayoshi Tanaka
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
Takayoshi Tanaka399 views

Recently uploaded

Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
119 views17 slides
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
90 views52 slides
"Surviving highload with Node.js", Andrii Shumada by
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
56 views29 slides
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
203 views54 slides
Cencora Executive Symposium by
Cencora Executive SymposiumCencora Executive Symposium
Cencora Executive Symposiummarketingcommunicati21
159 views14 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
263 views23 slides

Recently uploaded(20)

Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue119 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays56 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue203 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue263 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue106 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE79 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue123 views
Business Analyst Series 2023 - Week 4 Session 8 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8
DianaGray10123 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue126 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue132 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue152 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue186 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software176 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue252 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu423 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash158 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue218 views

New features of Azure Cloud Provider in OpenShift Container Platform 3.10

  • 1. New features of Azure Cloud Provider in OpenShift 3.10 Takayoshi Tanaka, Software Maintenance Engineer tatanaka@redhat.com
  • 2. Takeaways Let you know Azure Cloud Provider is getting more and more useful. Let you know some upstream project/feature can work on OpenShift (however, without support)
  • 3. Agenda What’s Azure Cloud Provider in OpenShift Big Changes for Azure Cloud Provider Experimental Features
  • 4. Azure Cloud Provider Concepts Underlying the Cloud Controller Manager
  • 5. Azure Cloud Provider kubernetes: ◦integrating Cloud features ◦Azure is one of the implementations OpenShift ◦includes kubernetes = almost all Cloud Provider features could work ◦Our tested features is describes in product documents
  • 6. OpenShift 3.10 on Azure includes kubernetes 1.10 – actually 1.10.1 + α kubernetes now supports, but OpenShift doesn’t: ◦ cluster auto scale ◦ https://github.com/feiskyer/autoscaler/blob/master/cluster- autoscaler/cloudprovider/azure/README.md ◦ Azure VM Scale Set Private Preview in OpenShift in the future ◦ Windows Container Support ◦ If you have an interest, contact Red Hat sales in charge of you, or me.
  • 7. Red Hat OpenShift on Azure https://www.redhat.com/en/about/press-releases/red-hat-and-microsoft-co- develop-first-red-hat-openshift-jointly-managed-service-public-cloud https://azure.microsoft.com/en-gb/blog/openshift-on-azure-the-easiest-fully-managed- openshift-in-the-cloud/ https://www.youtube.com/watch?v=WDr9TSyK9DA
  • 8. Looking back the announcment 10000 feet overview ◦ Launch OpenShift cluster with one command ◦ First-class citizen in Azure ◦ Including Open Service Broker for Azure If you have an interest, please contact me later. I'll pass your info to our team. $ az openshift create -n oscluster -g osrg ` –node-vm-size Standard_DS4_v3` --l eastus
  • 10. Before starting… Requirements for Azure Cloud Provider Virtual Machines (VMs) must belong to a single resource group & VNET ◦ Some improvements are ongoing VM name requirement ➔ Next page Internal Load Balancer is unavailable for master public end point OCP 3.7 or later is required for Managed Disk Service Type: LoadBalancer supports only Basic Azure Load Balancer ◦ Node VMs must belong to Availability Set (* I’ll explain later) Sovereign Cloud (Azure Germany, China etc) are available. ◦ Some extra configurations are required VM scale set is not tested in OCP
  • 11. Node Name = VM name: DO NOT include capital letters Be sure these values are same ◦ Azure VM name: az vm create –n <name> ◦ Internal DNS Name: az nic create --internal-dns-name <name> ◦ Hostname (DO not edit manually) ◦ OpenShift node name (inventory file) This name should not include capital letters ◦ OK: ocp-node1 ◦ NG: OCP-Node1
  • 13. Big Changes Installer Improvement Upgrade Issue (3.9 to 3.10) Azure Disk/File Mount options Azure File default permission changed to 0755 Improved Azure Disk mount/unmount performance
  • 14. Installer Improvement: Internal Hostname in Azure NIC Be sure to set internal hostname in the Azure NIC. - Create a new NIC - Apply to the existing NIC $ az network nic create -g MyResourceGroup --vnet- name MyVnet --subnet MySubnet -n MyNic --internal- dns-name node1 $ az network nic update -g MyResourceGroup - n MyNic --internal-dns-name node1
  • 15. Installer Improvement: Support creating azure.conf Advanced installer creates azure.conf. Note: If you need more parameters such as VNET or security group, you have to add them to azure.conf and restart services manually. openshift_cloudprovider_kind=azure openshift_cloudprovider_azure_client_id=<AAD_app_id> openshift_cloudprovider_azure_client_secret=<AAD_password> openshift_cloudprovider_azure_tenant_id=<AAD_tenant_id> openshift_cloudprovider_azure_subscription_id=<subscription_id> openshift_cloudprovider_azure_resource_group=<resource_group_name> openshift_cloudprovider_azure_location=<location>
  • 16. How to create a service principal? Execute the following three commands. If you’re using Azure Cloud Shell, try the following script. https://gist.github.com/tanaka- takayoshi/802fcfbd8d544495977c2e8660604bc3 $ az account show -o json $ az group show -n <resource_group_name> -o json $ az ad sp create-for-rbac --name <app_name> --role contributor --scopes <resource_group_id> -o json
  • 17. Installer Improvement: Support creating storage class Advanced installer creates storage class for Azure Disk/File. openshift_storageclass_name=slow-disk openshift_storageclass_provisioner=azure-disk openshift_storageclass_parameters={'storageaccounttype' : 'Standard_LRS', 'kind': 'Managed'}
  • 18. Upgrade Issue (3.9 to 3.10): relocate azure.conf OpenShift 3.10 doesn’t allow to locate azure.conf under /etc/azure. Use /etc/origin/cloudprovider instead of /etc/azure. Before upgrading the cluster, please copy the file and edit the master and node configuration files.
  • 19. Azure Disk/File Mount options You can specify mount options for Azure Disk and Azure File as a Volume. Storage Class and Persistent Volume has a mountOptions parameters. apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: slow mountOptions: - dir_mode=0777 - file_mode=0777 parameters: kind: Managed storageaccounttype: Standard_LRS provisioner: kubernetes.io/azure-disk reclaimPolicy: Delete apiVersion: v1 kind: PersistentVolume metadata: name: static-pv-file spec: accessModes: - ReadWriteOnce azureFile: secretName: azure-secret secretNamespace: openshift shareName: share1 capacity: storage: 1Gi mountOptions: - dir_mode=0777 - file_mode=0777 persistentVolumeReclaimPolicy: Delete
  • 20. Azure File default permission changed to 0755 The permission changed from 0777 to 0755. (at OCP 3.9 or newer) The owner of the directory is different from the UID of container by default. ◦ https://docs.openshift.com/container- platform/3.10/install_config/persistent_storage/persistent_storage_azure_file.html#azu re-file-before-you-begin Configure mountOptions to ensure the permission. Use SecurityContext to run a container by specific GID. (OCP 3.10) Use SecurityContext (RunAsUser) & mountOptions (uid) to run a container by specific UID.
  • 21. Improved Azure Disk mount/unmount performance It takes huge time to unmount and mount an Azure Disk when a new version of pod is located another node. It could happen when a new version of pod is located to a different node than the node where a current version of pod is running. pod pod
  • 22. Experimental Features RED HAT DOESN’T TESTED THESE FEATURES.
  • 23. Experimental Features Advanced Options for ServiceType: LoadBalancer Azure REST API authentication Monitoring
  • 24. Service Type: LoadBalancer Node Virtual Machines apiVersion: v1 kind: Service metadata: name: alb-svc spec: loadBalancerIP: 40.121.183.52 type: LoadBalancer ports: - port: 80 selector: app: my-app IP should be created in advance. Or you don’t have to specify the ip.
  • 25. Advanced Options Internal Load Balancer Internal Load Balancer with subnet DNS Label name https://github.com/kubernetes/cloud-provider-azure/blob/master/docs/development- loadbalancer.md annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet" annotations: service.beta.kubernetes.io/azure-dns-label-name: ""
  • 26. Service Type: LoadBalancer for huge cluster One Availability Set has maximum 200 VMs. If you deploy over 200 OpenShift nodes, you have to deploy two or more AvailabilitySet. One ALB can have only one AvailabilitySet. So, you have to deploy one ALB per AvailabilitySet. Node VMs – group A Node VMs – group B annotations: service.beta.kubernetes.io/azure-load-balancer-mode: “group-a,group-b"
  • 27. Azure REST API authentication: Managed Service Identity Managed Service Identity: ◦ You don’t have to provide password to configuration file ◦ https://docs.microsoft.com/en-us/azure/active-directory/managed-service- identity/overview Steps ◦ Enable MSI on all VMs for OpenShift nodes ◦ Grant your VM access to a Resource Group ◦ Update azure.conf useManagedIdentityExtension: true aadClientId: aadClientSecret:  Remove two lines  Add this line
  • 28. Monitoring - Prometheus Prometheus monitors Azure API Request Duration Seconds & Error. ◦ Prometheus is Technology Preview at 3.10