基本组件
Cluster
基本组成
通过kubectl
,对控制平面进行操作
输入
kubelctl apply -f xxx.yaml
后,发生了什么?
- 首先通过HTTP请求,发送至控制平面的
API Server
- 通过
Scheduler
,利用ETCD
中的数据,寻找合适的Node - 通过
Controller Mgr
,控制Node内部的Kubelet
Kubelet
基于Container runtime
拉取镜像,完成Pod的创建
创建Cluster
在本地调试开发时,可以使用kind
进行安装,会安装一个cluster到docker中
Pods
一个Pod内,包含多个Container(可以理解为Docker镜像)
Developments
Service
Ingress
HTTP请求后,先通过Ingress控制器,转换至某个Node的Kube Proxy
中,通过其转发到某个Pod上
目前higress:
如果我们的业务经常会增加不同的监听端口,那对于higress来说,不仅仅要调整kind: Gateway 资源内的port, 还要同步调整 higress-gateway service的port,相当
切换集群:
# 获取所有clusters
kubectl config get-contexts
# 获取当前集群信息
kubectl cluster-info
# 更改集群
kubectl config use-context kind-higress
#
kubectl get deployments --all-namespaces
启动higress console
-
先frontend运行
npm install, npm run build
-
backend运行
maven package
-
转发集群内端口:
kubectl port-forward deployment/higress-controller -n higress-system 15014
-
higress-core.gateway.hostNetwork
设为true,重启minikube
使用k9s
启动k8s & higress
minikube start
kubectl get svc -n higress-system
# 开启foo-app
kubectl apply -f foo-app.yaml
# 测试
curl http://localhost/foo -H 'host: foo.bar.com'
测试httpdns
参考文献: