容器化技术与微服务结合—docker(一)
容器化技术与微服务结合—Kubernetes基本介绍(二)
容器化技术与微服务结合—Pod详解(三)
容器化技术与微服务结合—实操service并部署一个简单对外开放的springboot HelloWord服务(四)
容器化技术与微服务结合—结合springcloud微服务框架进行部署(含切换成阿里云docker仓库)(五)
首先,k8s默认的是docker hub的源。网络实在太卡,我们先切换成国内的。
开通阿里云镜像服务这个服务免费的
进入控制台,开通镜像服务
点击创建仓库,然后填写完。这里博主选择公开,毕竟用于本地和云上测试(企业级必须私有哦。并且云上k8s保持同一个vpc内)
这里选择本地仓库。你可以使用阿里云的自动化构建。不过这里博主选择自己手动搞
可以看到。只要在本地登录docker之后。便可以轻松操作了。
密码在访问凭证里可以设定
随便打几个镜像上传到阿里云仓库把。发现已经上传完毕:
创建访问阿里云docker的secret对象,这里是阿里云docker的账号密码
kubectl create secret docker-registry aliyun-docker-test \
--docker-server=registry.cn-shanghai.aliyuncs.com \
--docker-username=登陆阿里云docker的用户名 \
--docker-password=登陆阿里云docker的密码 \
--docker-email=选填
请注意上线命令中的命名:aliyun-docker-test 如果需要使用这个docker源。那么就要在pod里面指定是用这个名称获取镜像
使用kubectl get secrets查看所有的镜像仓库。可以看到刚才我们创建的aliyun-docker-test已经好了
测试阿里云镜像我们将pod配置修改为:
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloword
labels:
app: helloword
spec:
replicas: 2
selector:
matchLabels:
app: helloword
template:
metadata:
labels:
app: helloword
spec:
containers:
- name: helloword
image: registry.cn-shanghai.aliyuncs.com/emper_test/k8s-test:v1 #修改镜像名称
ports:
- containerPort: 9999
imagePullSecrets:
- name: default/aliyun-docker-test #指定是阿里云docker的资源,斜杠前面是命名空间,创建不指定的话默认是default命名空间, 这里不加命名空间会拉不到镜像
---
apiVersion: v1
kind: Service
metadata:
name: helloword-service
labels:
app: helloword
spec:
ports:
- port: 9999
protocol: TCP
type: NodePort
selector:
app: helloword
注意imagePullSecrets的名称一定要加命名空间,最开始博主没加,结果各种获取不了镜像
再次执行kubectl apply -f helloword-deployment.yaml,发现成功,访问http://192.168.99.110:31125/hello,得到“aliyun docker version:1”返回。
将镜像版本改为v2. 也成功得到“aliyun docker version:2”。
切换成阿里云docker成功
我们来准备三个服务:eureka、demo-a、demo-b。
服务设计 eureka服务端口号:8761 demo-a服务端口号9998,抛出/hello接口,返回“hello-A” demo-b服务端口号9999,抛出/hello接口,返回“hello-B” demo-b调用demo-a接口,并抛出/from/a接口,返回值是demo-a服务的内部接口返回值:inner-from-a 服务配置我们来看下各自的配置
未完待续
未完待续
部署k8s未完待续