day1 : 介绍与期望

这是我人生第一次挑战30天铁人赛,在过去从来没有写过部落格的情况下,首次写文章就贡献给铁人赛,我觉得真的非常的冲动,不过这就是挑战啊!!

其实最我个人而言接触container不到4年,接触k8s不到2年,linux真正开始实战也不到5年,以我这样30几岁的工程师老实说落後各个有才华的年轻人非常远,不过我都可以开始了,我相信大家也能驾驭开源。

爲什麽题目是 开源k8s30天 呢?

“取之开源贡献开源” 我希望这是贯穿我这30天的核心
我在这30天中会以k8s为基底,带入各项开源专案来完整服务架构,让有意愿踏入k8s这个圈子的人有一些cncf专案可以参考并且未来也能将开源发散出去,不论是使用、分享、提出想法都是一种贡献的方法,希望大家都能让台湾的开源环境越来越壮大。

正文开始

如同一个前辈所言,一个kubernetes 永远都有不同解释,每个人讲出来的都不会是一样的,而我的观点其实就是这是一替我自动化的管理服务的平台,在k8s上运行的可以是各种服务,但是不一定所有服务都适合运行到k8s上,如果你期望你有一个不能重启的服务在k8s上能够实现不重启的概念,那麽这就会是一个不适合的案例。

接下来的30天,我会在gcp的平台上从0开始建置一套kubernetes环境,整个环境8成基於k8s的resources完全支援自动化布署并且可以重现

https://ithelp.ithome.com.tw/upload/images/20210901/20139661Vp4AcyPQDw.png
绿色为vm 蓝色为cluster 橘色为resources

我会透过terraform以及ansible两套工具达成os以及k8s服务布建,透过rancher这套管理工具管理k8s丛集并且布署istio grafana、prometheus、istio、opa,在k8s上使用vector专案将log记录到loki上,使用grafana以及grafana loki管理metrics和logging需求,利用grafana tempo管理tracing的监控。

布建gitlab主机搭配argocd做出gitops环境,透过argo rollouts让服务能够渐进式布署,并利用kong API让服务能够让外部使用。

在内部布署两种streaming service,分别是nats + nats streming cluster以及透过strimzi布署kafka cluster。

在内部布署两种DB service,分别是redisDB + keyDB以及TIDB。

在内部布署jmeter cluster并透过influxDB进行数据搜集。

在内部布署velero并使用minio进行namespaces备份。

透过knative做出serverless的服务。

利用opa机制限制服务布署。

最後搭配kubernetes-monitor进行k8s安全监控。

附录
有使用到的专案的官方网站(github),个人建议在学习或使用前先参考官方说明会是最精准的
cncf专案页面
https://landscape.cncf.io/

kubernetes
https://kubernetes.io/
https://github.com/kubernetes/kubernetes

terraform
https://www.terraform.io/
https://github.com/hashicorp/terraform

ansible
https://www.ansible.com/
https://github.com/ansible/ansible

harbor
https://goharbor.io/
https://github.com/goharbor/harbor

haproxy
http://www.haproxy.org/
https://github.com/haproxy/haproxy

rancher
https://rancher.com/
https://github.com/rancher/rancher

prometheus
https://prometheus.io/
https://github.com/prometheus/prometheus

grafana
https://grafana.com/
https://github.com/grafana/grafana

vector
https://vector.dev/
https://github.com/timberio/vector

loki
https://grafana.com/oss/loki/
https://github.com/grafana/loki

tempo
https://grafana.com/oss/tempo/
https://github.com/grafana/tempo

istio
https://istio.io/
https://github.com/istio/istio

kong
https://konghq.com/
https://github.com/Kong/kong

gitlab
https://about.gitlab.com/
https://github.com/gitlabhq/gitlabhq

argo-cd
https://argoproj.github.io/argo-cd/
https://github.com/argoproj/argo-cd

argo-rollouts
https://argoproj.github.io/argo-rollouts/
https://github.com/argoproj/argo-rollouts

nats + nats streaming
https://nats.io/
https://github.com/nats-io/nats-server
https://github.com/nats-io/nats-streaming-server

strimzi
https://strimzi.io/
https://github.com/strimzi

kafka
https://kafka.apache.org/
https://github.com/apache/kafka

redis
https://redis.io/
https://github.com/redis/redis

keyDB
https://keydb.dev/
https://github.com/EQ-Alpha/KeyDB

TIDB
https://pingcap.com/
https://github.com/pingcap/tidb

Jmeter
https://jmeter.apache.org/
https://github.com/apache/jmeter

influxDB
https://www.influxdata.com/
https://github.com/influxdata/influxdb

wiremock
http://wiremock.org/
https://github.com/tomakehurst/wiremock

velero
https://velero.io/
https://github.com/vmware-tanzu/velero

minio
https://min.io/
https://github.com/minio/minio

opa
https://www.openpolicyagent.org/
https://github.com/open-policy-agent

kubernetes-monitor
https://snyk.io/
https://github.com/snyk/kubernetes-monitor


<<:  电子书阅读器上的浏览器 [Day01] 初衷与功能总览

>>:  JavaScript入门 Day01_介绍

Methods to Login to Your ATT Account

To be honest, the ATT login process is not as comp...

【Vue】引入 Vue Carousel 轮播图套件| 专案实作

背景 许多网页时常会加入轮播图的设计,用来放置活动讯息或是品牌视觉图片,传递资讯及强化品牌形象。因此...

D25 - 走!去浏览器吃饼乾 yummy yummy!

前言 今天来学元素的 classList,一口一口吃饼乾 yummy yummy! Codepen ...

认识与建立javascript(DAY16)

Javascript是一种直译式语言,直译式就是在执行时会一行一行的动态直译然後执行,在执行上速度会...

Chapter1 - 补充 CORS + autoplay政策 + requestAnimeFrame致命缺点

前言 事情是这样的,其实我都是事先写好code,当天才写文章,本来昨天有三个重要的点要额外拉出来讲的...