2. • GlassFish Evangelist at Sun
Microsystems 2001 - 2010
• Java SE/EE Evangelist at Oracle
Japan 2010 - 2015
• Java Evangelist
• Cloud Developer Advocate at
Microsoft Japan 2015 –
• Tech Conference Speaker in Japan
Self Introduction
5. I will share the Important Topic
Java - Basic
Docker - Basic
Kubernetes - Experience
Dev & DevOps
Java Fun Demo !
Bot on Serverless & Voice operate
k8s
6. When you touch a new technology,
You may encounter some problems,
But please Overcome it and
let's make a better future !!
9. Improvement for Container since JDK10
Container detection and Resource
config usage
CPU and Memory allocation for
container become correct value.
Change RAM usage in Container
-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage
23. It is not for Production !!
https://github.com/yoshioterada/k8s-Azure-Container-Service-AKS--on-Azure/blob/master/Kubernetes-Workshop3.md
Configuration for Deployment
26. Request Limitation
$ kubectl top pod
NAME CPU(cores) MEMORY(bytes)
account-service-74b64648b7-2bqgs 3m 842Mi
account-service-74b64648b7-48kf8 3m 826Mi
For CPU entry:
The above 0.5(500m) is guaranteed to use the half CPU in
1 CPU. The expression 0.1 is equivalent to the expression
100m, which can be read as “one hundred millicpu”. CPU is
always requested as an absolute quantity, never as a
relative quantity.
For Memory entry:
You can express memory as a plain integer or as a fixed-
point integer using one of these suffixes: E, P, T, G, M, K.
You can also use the power-of-two equivalents: Ei, Pi, Ti,
Gi, Mi, Ki. For example, the following represent roughly
the same value:
36. Only “One Command” or “Push the Button” !
$ az aks upgrade --name yoshio-java-aks ¥
--resource-group yoshio-java-aks ¥
--kubernetes-version 1.11.3 --yes ¥
--debug
Sounds like Very Easy !!
38. 7. Take Care of k8s Version Up ?
This is not only Azure but others too !
• If executed the command failed, what do you do ?
• If you version up the k8s, Old Configuration may not Run on new Version.
-> Need to modify YAML file.
-> Need to specify new command option
3rd Party utilities may not run on new Version
Best way is to create new k8s cluster environment
39. Version Up the k8s
Master VM (node) VM (node)
Version11.2
Master VM (node) VM (node)
Version 12.1
I recommend to create new Cluster
40. Dev & Staging & Production (Multi Tenant)
Master VM (node) VM (node)
Staging
Version11.2
Master VM (node) VM (node)
Production
Version 11.2
I recommend to create new Cluster
for safe resource Isolation
41. High Available k8s Env on 2 Region
Master VM (node) VM (node) Master VM (node) VM (node)
West Region East Region
Traffic Manager (DNS Base)
(LB West) (LB East)
44. 1. Broken by upgrade k8s version (Ex:1.8 → 1.9)
2. Failed to scale the Linux VM
3. So many PODs course operation unavailable
4. YAML Configuration failed when upgrade
5. Attach/Detach PV failed
6. 3rd Party Tool(like Istio) version compatibility
Actual Trouble I faced
45. 1. kubectl describe pod
2. kubectl logs POD_NAME
3. kubectl exec -it POD_NAME /bin/sh
4. kubectl get events –w
5. Deploy Ubuntu pod in same NameSpace
When you faced the problem
49. Free for Java Developer of Azure User
https://www.azul.com/downloads/azure-only/zulu/
50. Azul zule on Docker for Azure
$ docker pull
mcr.microsoft.com/java/jre:8u181-zulu-alpine
https://www.azul.com/downloads/azure-only/zulu/
These downloadable binaries are free to download but can only be used with Java applications or Java application
components that are being developed for deployment on Microsoft Azure Cloud or Azure Stack and are not
intended to be used for any other purpose.