Как использовать открытую сервисную сетку в Kubernetes?
Я пытаюсь протестировать открытую сервисную сетку для нашего приложения.
В serverfault нет тегов для сервисной сетки, сервисной сетки, osm или открытой сервисной сетки и т. д. Поэтому я оставил istio в качестве тега serverfault для этого вопроса, поскольку это также аналогичный продукт сервисной сетки.
Итак, установил osm cli на свой ноутбук по этой ссылке .
В моем kubernetes (minikube) установил osm, используя:
osm install
Это установило osm в пространство имен osm-system.
Затем установил предоставленный ими образец приложения, используя их документацию.
Приложение их книжного магазина работает нормально.
Мой spec.traffic.enablePermissiveTrafficPolicyMode по-прежнему имеет значение true, поэтому никаких правил не требуется, и по умолчанию весь трафик должен быть разрешен.
Итак, для тестирования я попробовал контейнеры mondo-express и mongo.
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-configmap
namespace: mongosample
data:
database_url: mongodb-service
---
apiVersion: v1
kind: Namespace
metadata:
name: mongosample
---
apiVersion: v1
kind: Secret
metadata:
name: mongodb-secret
namespace: mongosample
type: Opaque
data:
mongo-root-username: dXNlcm5hbWU=
mongo-root-password: cGFzc3dvcmQ=
##echo -n 'username' | base64
##echo -n 'password' | base64
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-express
namespace: mongosample
labels:
app: mongo-express
spec:
replicas: 1
selector:
matchLabels:
app: mongo-express
template:
metadata:
labels:
app: mongo-express
spec:
imagePullSecrets:
- name: dockerhub-secret
containers:
- name: mongo-express
image: mongo-express:latest
ports:
- containerPort: 8081
env:
- name: ME_CONFIG_MONGODB_ADMINUSERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: ME_CONFIG_MONGODB_ADMINPASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
- name: ME_CONFIG_MONGODB_SERVER
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: database_url
---
apiVersion: v1
kind: Service
metadata:
namespace: mongosample
name: mongodb-express-service
spec:
selector:
app: mongo-express
type: ClusterIP
ports:
- protocol: TCP
port: 8081
targetPort: 8081
#nodePort: 30000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
namespace: mongosample
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
imagePullSecrets:
- name: dockerhub-secret
containers:
- name: mongodb
image: mongo:latest
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
namespace: mongosample
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
И без osm работает нормально.
Итак, включите osm для этого пространства имен mongosample, используя:
osm namespace add mongosample
После включения и перезапуска модулей:
И ошибка в журналах mongo-express
Если я удалю сервисную сетку в это пространство имен, все будет работать нормально.
osm namespace remove mongosample
Подскажите, пожалуйста, как это исправить?