k8s中部署无状态(deployment)服务
前言当部署python、java、php等服务时,都是无状态(deployment)应用服务部署注以部署nginx服务为示例编辑英勇的deployment的yaml文件cat > ng-dp.yaml <<-EOFapiVersion: extensions/v1beta1kind: Deploymentmetadata:name: nginx-devnamespace: cj-
·
前言
当部署python、java、php等服务时,都是无状态(deployment)应用服务
部署
- 注
以部署nginx服务为示例
编辑应用的deployment的yaml文件
cat > ng-dp.yaml <<-EOF
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-dev
namespace: default
spec:
selector:
matchLabels: # 标签,进行控制器相关联的操作
app: nginx-dev
replicas: 2 # 副本数量,即pod的个数
# ------------------------------------
template:
metadata:
labels:
app: nginx-dev
spec:
imagePullSecrets: # 拉取镜像策略,把拉取镜像的账密保存在K8s的secrets中
- name: ali-shenzhen-registry-secret
containers:
- name: nginx-dev
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80 # 开放连接端口
# -----资源限制----- -
resources:
requests: # 查询当前服务器的cpu,内存的资源情况
cpu: 0.5
memory: 256Mi
limits: # 限制nginx应用的资源使用,当超过时,进行杀死再重启应用
cpu: 1
memory: 1Gi
# -----------------
# -----健康检查-----
readinessProbe: # 检查应用程序是否就绪,如未,则尝试重建,查看是否恢复
tcpSocket:
port: 80
initialDelaySeconds: 60
periodSeconds: 10
livenessProbe: # 如健康检查失败,不会转发流量,不对外提供服务
tcpSocket:
port: 80
periodSeconds: 10
volumeMounts:
- name: timezone
mountPath: /etc/timezone
subPath: timezone
readOnly: yes
- name: localtime
mountPath: /etc/localtime
readOnly: yes
volumes:
- name: timezone
configMap:
name: timezone
- name: localtime
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
EOF
编辑应用的svc的yaml文件
请自行选择合适的类型进行部署服务
- 1.type类型为ClusterIP
cat > ng-svc.yaml <<-EOF
apiVersion: v1
kind: Service
metadata:
name: nginx-dev
namespace: default
spec:
selector:
app: nginx-dev
type: ClusterIP
ports:
- protocol: TCP
targetPort: 80
port: 80
EOF
获取svc信息
编辑应用的ing的yaml文件
cat > ng-ing.yaml <<-EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ng
namespace: default
spec:
rules:
- host: ng.xxx.com
http:
paths:
- backend:
serviceName: nginx-dev
servicePort: 80
tls:
- hosts:
- "*.xxx.com"
secretName: tls-xxx-com
EOF
- 注
请自行进行域名解析,根据实际情况进行相应的操作
kubectl部署deployment、svc、ingress服务
kubectl apply -f ng-dp.yaml
kubectl apply -f ng-svc.yaml
kubectl apply -f ng-ingress.yaml
kubectl查看deployment、svc、ingress服务
]# kubectl get pod,svc,ing -n cj-dev
NAME READY STATUS RESTARTS AGE
pod/nginx-dev-5f544f64cb-r6zm7 1/1 Running 0 85m
pod/nginx-dev-5f544f64cb-r9lr7 1/1 Running 0 85m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-dev ClusterIP 172.21.14.170 <none> 80/TCP 5h52m
NAME HOSTS ADDRESS PORTS AGE
ingress.extensions/ng ng.ecaicn.com 47.106.30.90 80, 443 5h51m
结语
… …
更多推荐
已为社区贡献25条内容
所有评论(0)