Apigee
1. integrated developer portal
2. convert a set of API into product: R/W access, rate per second, and how to use it. mix and match methods, operatoins from different APIs. code as pricing model. bronze/silver/gold customer. break out APIs in different packages.
3. Security
out of box policy
- authentication
- authorization
- rate limit
- spikers
- JSON based threat
- XML based threat
- use other Google cloud tool
-- cloud armor for DDoS
It sops absuive or bot traffic ASAP, before it enters into system.
New Advance API security feature
- Identify mis configured API.
-- security score for API
-- recommended action
-- abuse of API detection
-- API security dashboard for quick investigation and resolution
- Bot detection: API traffic pattern
4. Application Integration : 50+ connectors to 3rd party services,
API hub: API catalogue and API LCM
5. Measure and tune APIs: Analytic
6. engage and innovate with partner to create digital eco system.
7. full API LCM platform
- builder façade
- caching
Refernece: https://www.youtube.com/watch?v=KfJoQAKoQiM
Kube API and CRDs
k api-resources
- Short name
- API version
- Namespaced (Boolean)
- Kind
- Verbs
The evolution of Ingress through the Gateway API
1. Transparent Proxies: sidecar, kube-proxy
2. Cloud LB: GCP, Azure, AWS
3. Middle Proxies: nginx, HAProxy, Envoy
1. Infrastructure Provider
2. Cluster Operator / NetOps / SRE
3. Applicatoin DEveloper
2. Gateway provides: Exposure and access, LB
3. Route: HTTP, TCP, UDP, SNI and TLS: HTTPS, TLS
4. Service about grouping and selection
API groups
1. Core: Must be supported
2. Extended: Feature specific. May be supported, must be portable
3. Implementation specific: Not K8s API schema. No guarantee for portability
Earlier we had single ingress resource. Now it splits in Gateway and Route. So there may be conflict. E.g. same host, same path in multiple routes.
1. GatewayClass parameters for LB configuration
2. Gateway.Listener have ExtensionRef to customize listener properties
3. Route: Custom filter via ExtenstionRef. Backend is more than Services, like ingress
K8s API
- api
- apis
- healthz
- logs
- metrics
- version
- admission
- admissionregistration.k8s.io
- apiextensions.k8s.io
- apiregistration.k8s.io
- apps
- auditregistration
- authentication.k8s.io
- authorization.k8s.io
- autoscaling
- batch
- certificates.k8s.io
- coordination.k8s.io
- core
- discovery
- events.k8s.io
- extensions
- flowcontrol
- imagepolicy
- monitoring.coreos.com
- networking.k8s.io
- node.k8s.io
- policy
- rbac.authorization.k8s.io
- scheduling.k8s.io
- settings
- storage.k8s.io
- testdata
- list
- get
- create
- delete
- update
- watch
The below table indicates, composition relationships among all K8s objects, as per K8s 1.17
Reference:
https://kubernetes.io/docs/reference/
https://kubernetes.io/docs/reference/kubectl/overview/
https://kubernetes.io/docs/concepts/overview/working-with-objects/object-management/
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md
https://www.cncf.io/blog/2020/03/17/how-to-setup-role-based-access-to-kubernetes-cluster/
https://github.com/kubernetes/kubernetes/issues/7856
https://kubernetes.io/docs/concepts/overview/kubernetes-api/
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api_changes.md