kubernetes连接私有仓库部署
创建Secret当pod从私用仓库拉取镜像时,k8s集群使用Secret来提供身份认证,这里我先创建一个ali-registry的Secrect,它的类型是docker-registry,通过-n参数指定命名空间为delicious-map命令:# 删除之前的secrectkubectl delete secret ali-registrykubectl -n delicious-map...
·
仓库(如果有,可略过)
如果你没有仓库,可以到阿里云“容器镜像服务”中创建一个仓库。创建好之后点击仓库名称,进入详情页。详情页的操作指南
写的非常清晰,给出了仓库地址
,和用户名
、密码
。操作指南里写的仓库地址是公网地址, 如果你是在内网中使用可以用专有网络地址,
创建Secret
当pod从私用仓库拉取镜像时,k8s集群使用Secret
来提供身份认证,这里我先创建一个Secrect(名字是ali-registry、类型是docker-registry、命名空间是delicious-map)。
数据项 | 意义 |
---|---|
–docker-server | 仓库地址 |
–docker-username | 登陆仓库的用户名 |
–docker-password | 登陆仓库的密码 |
命令:
# 删除之前的secrect
kubectl delete secret ali-registry -n delicious-map
# 创建Secrect
kubectl -n delicious-map create secret docker-registry ali-registry \
--docker-server=registry.cn-beijing.aliyuncs.com \
--docker-username=DQKK \
--docker-password=12345678 \
--docker-email=44xiao44@sina.com
创建deployment部署
需要注意下面的三项
- imagePullSecrets中指定上面创建的secrect
- containers中的image 需要完整的仓库地址
- 命名空间要一致
例子:
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxxx
namespace: delicious-map
spec:
# 启动节点数2个
replicas: 2
selector:
matchLabels:
app: xxxx
template:
metadata:
labels:
app: xxxx
namespace: delicious-map
spec:
# 指定使用的secret
imagePullSecrets:
- name: ali-registry
containers:
- name: xxxx
# 镜像
image: registry.cn-beijing.aliyuncs.com/docker_xxxx/dq_xxxx:版本号
# 只有镜像存在时,才拉取
imagePullPolicy: IfNotPresent
ports:
# 容器端口号
- containerPort: 8080
env:
# 传参数给容器
- name: my-test
value: "123456"
volumeMounts:
# 数据卷名字
- name: nfs-log
# 容器中挂载的目录
mountPath: /log
resources:
# 资源设置
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: "1"
memory: 512Mi
volumes:
# 定义数据卷名称
- name: nfs-log
# 确定使用的pvc
persistentVolumeClaim:
claimName: nfs-pvc-log-all
---
apiVersion: v1
kind: Service
metadata:
name: xxxx
spec:
ports:
- port: 8084
targetPort: 8080
type: LoadBalancer
更多推荐
已为社区贡献3条内容
所有评论(0)