使用以下5个yaml来部署上一篇生成的服务端镜像versioning:v2
1、创建命名空间,,可以创建一个独立的命名空间也可以使用已有命名空间
00-need-create-namespace
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
2、授权,,使用默认的只有view权限的用户组
10-ServiceAccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: versioning
namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: versioning
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: versioning
namespace: monitoring
3、创建service
20-port-service.yaml
kind: Service
apiVersion: v1
metadata:
name: versioning-service
namespace: monitoring
spec:
selector:
app: versioning-demo
ports:
- protocol: TCP
port: 5000
name: web
4、创建ing
21-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: versioning-ingress
namespace: monitoring
spec:
rules:
- http:
paths:
- path: /versioning
backend:
serviceName: versioning-service
servicePort: web
service 和 ing 都是一个作用,暴露服务端给外界使用。。
5、部署deploy
30-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: versioning-deployment
namespace: monitoring
labels:
app: versioning-deployment
spec:
replicas: 1
selector:
matchLabels:
app: versioning-demo
template:
metadata:
labels:
app: versioning-demo
spec:
serviceAccountName: versioning
hostAliases:
- ip: "10.230.32.22"
hostnames:
- "apiserver.cluster.local"
containers:
- name: versioning-container
image: registry.cn-shenzhen.aliyuncs.com/jiankong/versioning:v2.0
ports:
- containerPort: 5000
name: web
restartPolicy: Always
ip: 10.230.32.22是apiserver.cluster.local域名的解析,写到服务端的镜像中,之前的app.py有段代码是用了这个域名的。这个IP是K8s的master主机的IP。
registry.cn-shenzhen.aliyuncs.com/jiankong 是放有镜像端的镜像仓库。
kubectl apply -f *.yaml后,成功运行后如下
使用浏览器直接打开 http:// IP:端口/versioning