K8s/Service

From Chorke Wiki
Jump to navigation Jump to search

Redis

kubectl config get-contexts
kubectl get ns | grep redis

cat << YML | kubectl -n redis apply -f -
---
apiVersion: v1
kind: Service
metadata:
  name: redis-lb
  namespace: redis
  labels:
    app.kubernetes.io/name: redis
    app.kubernetes.io/managed-by: kubectl
  annotations:
    meta.helm.sh/release-name: redis
    meta.helm.sh/release-namespace: redis
spec:
  type: LoadBalancer
  ports:
  - port: 6379
    name: redis
    protocol: TCP
    targetPort: redis
  selector:
    app.kubernetes.io/instance: redis
    app.kubernetes.io/name: redis
YML

GitLab

kubectl config get-contexts
kubectl get ns |grep gitlab

cat << YML | kubectl -n gitlab apply -f -
---
apiVersion: v1
kind: Service
metadata:
  name: gitlab-lb
  namespace: gitlab
  labels:
    app: gitlab
    app.kubernetes.io/managed-by: kubectl
  annotations:
    meta.helm.sh/release-name: gitlab
    meta.helm.sh/release-namespace: gitlab
spec:
  type: LoadBalancer
  ports:
  - port: 22
    name: ssh
    protocol: TCP
    targetPort: 22
  selector:
    app: gitlab
    release: gitlab
YML
cat << YML | kubectl -n gitlab apply -f -
---
apiVersion: v1
kind: Service
metadata:
  name: gitlab-lb
  namespace: gitlab
  labels:
    app: gitlab-shell
    app.kubernetes.io/managed-by: kubectl
  annotations:
    meta.helm.sh/release-name: gitlab
    meta.helm.sh/release-namespace: gitlab
spec:
  type: LoadBalancer
  ports:
  - port: 22
    name: ssh
    protocol: TCP
    targetPort: 2222
  selector:
    app: gitlab-shell
    release: gitlab
YML

External

kubectl config get-contexts
kubectl get ns|grep external
kubectl create namespace external

Internal

kubectl config get-contexts
kubectl get ns|grep internal
kubectl create namespace internal

cat << YML|kubectl apply -n internal -f -
---
apiVersion: v1
kind: Service
metadata:
  name: minikube-host
  namespace: internal
  labels:
    app.kubernetes.io/version: 1.0.0
    app.kubernetes.io/managed-by: kubectl
    app.kubernetes.io/name: minikube-host
    app.kubernetes.io/instance: minikube-host
spec:
  type: ExternalName
  externalName: host.minikube.internal
YML

MariaDB

kubectl config get-contexts
kubectl get ns|grep mariadb

cat << YML | kubectl -n mariadb apply -f -
---
apiVersion: v1
kind: Service
metadata:
  name: mariadb-lb
  namespace: mariadb
  labels:
    app.kubernetes.io/name: mariadb
    app.kubernetes.io/managed-by: kubectl
  annotations:
    meta.helm.sh/release-name: mariadb
    meta.helm.sh/release-namespace: mariadb
spec:
  type: LoadBalancer
  ports:
  - port: 3306
    name: mysql
    protocol: TCP
    targetPort: mysql
  selector:
    app.kubernetes.io/name: mariadb
    app.kubernetes.io/instance: mariadb
YML

PostgreSQL

kubectl config get-contexts
kubectl get ns|grep postgresql

cat << YML | kubectl -n postgresql apply -f -
---
apiVersion: v1
kind: Service
metadata:
  name: postgresql-lb
  namespace: postgresql
  labels:
    app.kubernetes.io/name: postgresql
    app.kubernetes.io/managed-by: kubectl
  annotations:
    meta.helm.sh/release-name: postgresql
    meta.helm.sh/release-namespace: postgresql
spec:
  type: LoadBalancer
  ports:
    - port: 5432
      protocol: TCP
      name: tcp-postgresql
      targetPort: tcp-postgresql
  selector:
    app.kubernetes.io/name: postgresql
    app.kubernetes.io/instance: postgresql
YML

Ingress » Nginx

kubectl config get-contexts
kubectl get ns|grep ingress-nginx

cat << YML | kubectl apply -n ingress-nginx -f -
---
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
    - name: proxied-tcp-5432
      port: 5432
      targetPort: 5432
      protocol: TCP
    - name: proxied-tcp-6379
      port: 6379
      targetPort: 6379
      protocol: TCP
    - name: proxied-udp-1194
      port: 1194
      targetPort: 1194
      protocol: UDP
    - name: proxied-udp-53
      port: 53
      targetPort: 53
      protocol: UDP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
YML

Playground

kubectl -n external get endpoints
kubectl -n external get service
kubectl -n external get ingress
kubectl -n internal get endpoints
kubectl -n internal get service
kubectl -n internal get ingress
kubectl config get-contexts
sudo -i -u minikube
helm list -A

kubectl get all -A
kubectl get ns

References