It is in charge of all things about implementation of Service Mesh.
What are our tasks?
- Retrieving the data of service & instances from a registry center such as Nacos, zookeeper.
- Generating the istio's CRD through various data such as registry data & configurations.
- Make MOSN be able to support serve a registry request which comes from a dubbo provider.
Direct compilation:
$ make manager
Build docker image and push:
$ make docker-build
$ make docker-push
You can customize the docker repository by modifying the IMG_ADDR
variable in the Makefile.
Install CRD:
$ make install
Install CRD no validations:
$ kubectl apply -f config/crd/simple
Create sample Meshconfig and default Sidecar:
$ kubectl apply -f config/samples/mesh_v1alpha1_meshconfig.yaml -f config/samples/istio_default_sidecar.yaml
Deploy adapter and controller:
$ make deploy
You can customize the deployment by modifying the config/operator
and config/adapter
kustomize config files.
env:
- name: PILOT_PUSH_THROTTLE
value: "1000"
- name: PILOT_DEBOUNCE_AFTER
value: 100ms
- name: PILOT_DEBOUNCE_MAX
value: 5s
- name: PILOT_ENABLE_EDS_DEBOUNCE
value: "false"
- name: PILOT_ENABLE_SERVICEENTRY_SELECT_PODS
value: "false"
- name: PILOT_ENABLE_K8S_SELECT_WORKLOAD_ENTRIES
value: "false"
- name: PILOT_XDS_CACHE_SIZE
value: "50000"
- name: PILOT_ENABLE_HEADLESS_SERVICE_POD_LISTENERS
value: "false"
Adapter:
- Synchronizing services from a specified registry center.
- Synchronizing the customized configuration of service from a specified config center
The implementing for synchronizing services:
- Zookeeper servers of a dubbo cluster (Supported)
- Nacos (Planned)
The implementing for synchronizing configs:
- The configuration stored as a independent zNode for a dubbo service
- Nacos (Planned)
The event handler what is used for creating or updating the services with its configuration
- Creating a CR named ConfiguredService correspond to a service into a single k8s cluster (Supported)
- Creating the CR into multiple k8s clusters (Supported)