Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced aks #31

Merged
merged 26 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
e259697
outline of advanced lab
pauldotyu Oct 22, 2024
58ea538
added cluster update mgmt section (#12)
phillipgibson Oct 23, 2024
dfd9d4e
added Istio section (#14)
phillipgibson Oct 25, 2024
ab07084
added Overview and Objectives sections (#13)
russd2357 Oct 25, 2024
c046145
added workload identity section (#15)
phillipgibson Oct 25, 2024
14cd3b8
small edits. formatting and spell checks (#17)
pauldotyu Oct 30, 2024
5791e10
docs: added fleet section (#18)
phillipgibson Oct 31, 2024
aba8199
adding cost analysis (#19)
pauldotyu Nov 1, 2024
ae3e79c
added cluster sizing and toplogy section (#20)
russd2357 Nov 1, 2024
4889a49
Advanced aks monitor (#21)
pauldotyu Nov 1, 2024
efbc50f
markdown formatting and command cleanup for consistency (#22)
pauldotyu Nov 4, 2024
5e86869
logo update
pauldotyu Nov 5, 2024
2ddc0c1
add keyvault, managed identity for keyvault and rbac assignments
pauldotyu Nov 5, 2024
7d0f681
adding cert user role to managed identity
pauldotyu Nov 5, 2024
5042024
add acr
pauldotyu Nov 5, 2024
2c4f7ac
update location
pauldotyu Nov 5, 2024
4cbf9ca
Adding advanced container networking part
Nov 6, 2024
9e3df46
docs: updated istio to include plug-in CA deployment (#26)
phillipgibson Nov 7, 2024
b37a485
Azure Container Storage contents (#27)
mukhoakash Nov 7, 2024
9e9ee39
Added section how to sign and verify container image. (#25)
russd2357 Nov 7, 2024
bfbe0e8
Fix a couple of typos in Azure Container Storage
mukhoakash Nov 7, 2024
11cbf33
formatting, spellchecks, and cli command consistency
pauldotyu Nov 8, 2024
d70c3c9
adding instruction for hubble cli installation (#28)
JosephYostos Nov 8, 2024
a221ed1
docs: updated istio section and fixed spelling (#29)
phillipgibson Nov 8, 2024
a9dba3a
more content cleanup (#30)
pauldotyu Nov 8, 2024
00ad1d2
point asset downloads to main branch
pauldotyu Nov 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/website/src/app/catalog/catalog.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const pageTitle = 'MOAW - All Workshops';
imports: [CommonModule, HeaderComponent, FooterComponent, LoaderComponent, ChipComponent, CardComponent],
template: `
<div class="full-viewport">
<app-header logo="images/aks-logo-full.png" logoUrl="" [links]="links"></app-header>
<app-header logo="images/aks-logo.png" logoUrl="" [links]="links"></app-header>
<div class="content bg-light">
<main id="${mainScrollableId}" class="scrollable">
<section class="hero">
Expand Down
15 changes: 3 additions & 12 deletions packages/website/src/app/home/home.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -239,19 +239,10 @@ export class HomeComponent {

// TODO: Extract from tags
keywords = [
'JavaScript',
'C#',
'cloud computing',
'.NET',
'machine learning',
'Python',
'serverless',
'HTML',
'CSS',
'APIs',
'IoT',
'databases',
'cloud native',
'containers',
'quantum computing'
'Kubernetes',
'Azure Kubernetes Service',
];
}
Binary file modified packages/website/src/public/images/aks-logo-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file added packages/website/src/public/images/aks-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
234 changes: 234 additions & 0 deletions workshops/advanced-aks/assets/acns-hubble-ui.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: hubble-ui
namespace: kube-system
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: hubble-ui
labels:
app.kubernetes.io/part-of: retina
rules:
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- componentstatuses
- endpoints
- namespaces
- nodes
- pods
- services
verbs:
- get
- list
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- apiGroups:
- cilium.io
resources:
- "*"
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: hubble-ui
labels:
app.kubernetes.io/part-of: retina
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: hubble-ui
subjects:
- kind: ServiceAccount
name: hubble-ui
namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
name: hubble-ui-nginx
namespace: kube-system
data:
nginx.conf: |
server {
listen 8081;
server_name localhost;
root /app;
index index.html;
client_max_body_size 1G;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# CORS
add_header Access-Control-Allow-Methods "GET, POST, PUT, HEAD, DELETE, OPTIONS";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 1728000;
add_header Access-Control-Expose-Headers content-length,grpc-status,grpc-message;
add_header Access-Control-Allow-Headers range,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout;
if ($request_method = OPTIONS) {
return 204;
}
# /CORS
location /api {
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_hide_header Access-Control-Allow-Origin;
proxy_pass http://127.0.0.1:8090;
}
location / {
try_files $uri $uri/ /index.html /index.html;
}
# Liveness probe
location /healthz {
access_log off;
add_header Content-Type text/plain;
return 200 'ok';
}
}
}
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: hubble-ui
namespace: kube-system
labels:
k8s-app: hubble-ui
app.kubernetes.io/name: hubble-ui
app.kubernetes.io/part-of: retina
spec:
replicas: 1
selector:
matchLabels:
k8s-app: hubble-ui
template:
metadata:
labels:
k8s-app: hubble-ui
app.kubernetes.io/name: hubble-ui
app.kubernetes.io/part-of: retina
spec:
serviceAccount: hibble-ui
serviceAccountName: hubble-ui
automountServiceAccountToken: true
containers:
- name: frontend
image: mcr.microsoft.com/oss/cilium/hubble-ui:v0.12.2
imagePullPolicy: Always
ports:
- name: http
containerPort: 8081
livenessProbe:
httpGet:
path: /healthz
port: 8081
readinessProbe:
httpGet:
path: /
port: 8081
resources: {}
volumeMounts:
- name: hubble-ui-nginx-conf
mountPath: /etc/nginx/conf.d/default.conf
subPath: nginx.conf
- name: tmp-dir
mountPath: /tmp
terminationMessagePolicy: FallbackToLogsOnError
securityContext: {}
- name: backend
image: mcr.microsoft.com/oss/cilium/hubble-ui-backend:v0.12.2
imagePullPolicy: Always
env:
- name: EVENTS_SERVER_PORT
value: "8090"
- name: FLOWS_API_ADDR
value: "hubble-relay:443"
- name: TLS_TO_RELAY_ENABLED
value: "true"
- name: TLS_RELAY_SERVER_NAME
value: ui.hubble-relay.cilium.io
- name: TLS_RELAY_CA_CERT_FILES
value: /var/lib/hubble-ui/certs/hubble-relay-ca.crt
- name: TLS_RELAY_CLIENT_CERT_FILE
value: /var/lib/hubble-ui/certs/client.crt
- name: TLS_RELAY_CLIENT_KEY_FILE
value: /var/lib/hubble-ui/certs/client.key
livenessProbe:
httpGet:
path: /healthz
port: 8090
readinessProbe:
httpGet:
path: /healthz
port: 8090
ports:
- name: grpc
containerPort: 8090
resources: {}
volumeMounts:
- name: hubble-ui-client-certs
mountPath: /var/lib/hubble-ui/certs
readOnly: true
terminationMessagePolicy: FallbackToLogsOnError
securityContext: {}
nodeSelector:
kubernetes.io/os: linux
volumes:
- configMap:
defaultMode: 420
name: hubble-ui-nginx
name: hubble-ui-nginx-conf
- emptyDir: {}
name: tmp-dir
- name: hubble-ui-client-certs
projected:
defaultMode: 0400
sources:
- secret:
name: hubble-relay-client-certs
items:
- key: tls.crt
path: client.crt
- key: tls.key
path: client.key
- key: ca.crt
path: hubble-relay-ca.crt
---
kind: Service
apiVersion: v1
metadata:
name: hubble-ui
namespace: kube-system
labels:
k8s-app: hubble-ui
app.kubernetes.io/name: hubble-ui
app.kubernetes.io/part-of: retina
spec:
type: ClusterIP
selector:
k8s-app: hubble-ui
ports:
- name: http
port: 80
targetPort: 8081
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: allow-store-front-traffic
spec:
endpointSelector:
matchLabels:
app: store-front
ingress:
- fromEntities:
- world # Allow external traffic to store-front via LoadBalancer.
toPorts:
- ports:
- port: "8080"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
app: order-service
toPorts:
- ports:
- port: "3000"
protocol: TCP
- toEndpoints:
- matchLabels:
app: product-service
toPorts:
- ports:
- port: "3002"
protocol: TCP
25 changes: 25 additions & 0 deletions workshops/advanced-aks/assets/acns-network-policy-chaos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: allow-store-front-traffic
spec:
endpointSelector:
matchLabels:
app: store-front
ingress:
- fromEndpoints: []
egress:
- toEndpoints:
- matchLabels:
app: order-service
toPorts:
- ports:
- port: "3000"
protocol: TCP
- toEndpoints:
- matchLabels:
app: product-service
toPorts:
- ports:
- port: "3002"
protocol: TCP
34 changes: 34 additions & 0 deletions workshops/advanced-aks/assets/acns-network-policy-fqdn.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-order-service-traffic
spec:
endpointSelector:
matchLabels:
app: order-service
egress:
- toEndpoints:
- matchLabels:
io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
- matchLabels:
io.kubernetes.pod.namespace: pets
app: rabbitmq
toPorts:
- ports:
- port: "53"
protocol: UDP
rules:
dns:
- matchPattern: "rabbitmq.pets.svc.cluster.local"
- matchPattern: "*.microsoft.com"
- matchPattern: "*.microsoft.com.cluster.local"
- matchPattern: "*.microsoft.com.pets.svc.cluster.local"
- matchPattern: "*.microsoft.com.*.*.internal.cloudapp.net"
- matchPattern: "*.microsoft.com.svc.cluster.local"
- toFQDNs:
- matchPattern: "*.microsoft.com"
toPorts:
- ports:
- port: "443"
protocol: TCP
Loading
Loading