准备工作
- Harbor 镜像仓库服务器,我的服务器IP是192.168.242.132;
- Kubernetes集群节点能通过【docker login】命令登录Harbor仓库,详细设置步骤参考这篇博文
开始配置
- 创建secret
kubectl create secret docker-registry secret-name --namespace=default \
--docker-server=http://192.168.242.132 --docker-username=username \
--docker-password=password --docker-email=xxx@xxx.xxx
secret-name: secret的名称
namespace: 命名空间
docker-server: Harbor仓库地址
docker-username: Harbor仓库登录账号
docker-password: Harbor仓库登录密码
docker-email: 邮件地址
- 创建yaml文件,我这里以nginx为例创建了一个
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: 192.168.242.132/library/nginx:1.15.1
imagePullPolicy: Always
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
sessionAffinity: ClientIP
selector:
app: nginx
ports:
- port: 80
nodePort: 30080
执行命令创建
kubectl create -f deploy-nginx.yaml
创建完成后查看Pods
kubectl get pods
最后可以通过浏览器来验证一下,yaml文件中定义对外暴露的端口是30080,现在在浏览器中可以输入Kubernetes集群任意节点的IP加上30080端口,我这里输入master节点的IP,http://192.168.242.136:30080/,可以正常看到nginx界面
那么这个镜像到底部署在哪个节点上呢,可以通过如下命令查看
kubectl get pods -n default -o wide