在以往的文章中,看到k8s部署nacos中间省略了好多,或者是镜像拉去不下来,今天给大家分享一下从镜像到最后部署到k8s全过程,今天先分享nacos单点部署。
1 nacos的docker镜像制作
nacos下载地址:https://github.com/alibaba/nacos/releases
点击查看代码
[root@k-2 nacos]# cat Dockerfile
FROM kimicheng/jdk1.8.0_91:latest
ADD ./nacos-server-2.1.2.tar.gz /
ENV JAVA_HOME /opt/jdk1.8.0_91
EXPOSE 8048
ENTRYPOINT /bin/bash /nacos/bin/startup.sh -m standalone && tail -f /dev/null
docker build -t "nacos:v1" -f Dockerfile .
2 制作cm
这一步单点不做也行,因为单点默认的是本地保存数据,是不走数据库的,所以用默认的配置文件就行,这里是为之后集群式做铺垫,所以先挂载个cm,注意,如果不想用这个需要改后边yaml文件的代码,为了改动少还是先按这个来,不影响服务。
解压nacos包,
tar xf nacos-server-2.1.2.tar.gz -C /opt/
cd /opt/nacos/nacos/conf/
kubectl create cm nacos-cm --from-file=application.properties
3 制作 k8s的编排文件
kubectl create ns dev
点击查看代码
[root@k-2 nacos]# cat nacos-svc.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nacos
namespace: dev
spec:
selector:
matchLabels:
app: nacos
replicas: 3
template:
metadata:
name: nacos
namespace: dev
labels:
app: nacos
spec:
containers:
- name: nacos
image: nacos:v1
imagePullPolicy: IfNotPresent
#command: ["ln","-sv","/tmp/application.properties","/nacos/conf/application.properties"]
ports:
- containerPort: 8848
env:
- name: nacos
valueFrom:
configMapKeyRef:
name: nacos-cm
#key: application.properties
key: application.properties
#volumeMounts:
#- name: nacos-config
# mountPath: /tmp
# readOnly: true
#volumes:
#- name: nacos-config
# configMap:
# name: nacos-cm
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: nacos-server
namespace: dev
labels:
app: nacos
spec:
selector:
app: nacos
type: NodePort
ports:
- port: 8848
protocol: TCP
nodePort: 30848
kubectl apply -f nacos-svc.yml
查看结果
kubectl get pod -n dev

然后执行命令查看server的ip验证是否成功
kubectl get svc -A

出现以下结果,说明是部署成功

然后登录界面
执行 kubectl get pod --all-namespaces -owide|grep nacos 查看相应的机器ip

使用该节点的ip访问页面 http://ip:30848/nacos (如果有域名的话,可以使用ingress配置下域名使用域名登录)

账户密码都是nacos到这里我们已经搭建成功,希望能帮助到需要的同学。
浙公网安备 33010602011771号