Kubernetes使用阿里云docker

背景

k8s默认使用gcr.io作为镜像仓库,由于网络原因无法正常访问,或者速度非常慢。我就使用了阿里云docker,来创建自己的私有仓库。

申请阿里云账号

阿里云docker管理界面地址

docker hub加速

使用阿里云加速访问docker hub。访问docker hub官方镜像时进行网络提速

创建命名空间

k8s创建secret

创建访问阿里云docker的secret对象,这里是阿里云docker的账号密码

ALI_DOCKER_REGISTRY_SERVER=https://registry.cn-hangzhou.aliyuncs.com/
ALI_DOCKER_USER=登陆阿里云docker的用户名
ALI_DOCKER_EMAIL=登陆阿里云docker的email
ALI_DOCKER_PASSWORD=登陆阿里云docker的密码
kubectl create secret docker-registry aliyun-docker \
  --docker-server=$ALI_DOCKER_REGISTRY_SERVER \
  --docker-username=$ALI_DOCKER_USER \
  --docker-password=$ALI_DOCKER_PASSWORD \
  --docker-email=$ALI_DOCKER_EMAIL

镜像制作

获取node官方镜像

sudo docker pull node:10 以官方镜像为基础

将官方镜像推到自己仓库

先使用sudo docker images,查看下载的node镜像id,

然后打一个新的tag. sudo docker tag 5a401340b79f registry.cn-hangzhou.aliyuncs.com/xxxxx/node:10

最后推送到自己的阿里云仓库 sudo docker push registry.cn-hangzhou.aliyuncs.com/xxxxx/node:10

如果是私有仓库,要保证已经docker登录了阿里云账号,否则无法推送

制作自己的node应用镜像

应用dockerfile内容如下

FROM registry.cn-hangzhou.aliyuncs.com/xxxxx/node:10
EXPOSE 8080
COPY server.js .
CMD node server.js

应用server.js内容如下

var http = require('http');
var handleRequest = function(request, response) {
  console.log('Received request for URL: ' + request.url);
  response.writeHead(200);
  response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(8080);

构建应用镜像

sudo docker build --tag registry.cn-hangzhou.aliyuncs.com/xxxxx/hello_world:v0.1 ./

上传到阿里云仓库

sudo docker push registry.cn-hangzhou.aliyuncs.com/xxxxx/hello_world:v0.1

pod容器使用secret

创建pod

pod的yaml内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: helloworld
  labels:
    app: helloworld
spec:
  containers:
    - name: helloworld
      image: registry.cn-hangzhou.aliyuncs.com/xxxxx/hello_world:v0.1
      imagePullPolicy: Always
      ports:
        - containerPort: 8080
  imagePullSecrets:
    - name: aliyun-docker

创建pod,sudo kubectl apply -f helloworld.yaml

访问pod

通过sudo kebectl describe pod helloworld,得到pod的状态和运行在哪个node,以及pod的容器ip。

在部署的node上,curl http://pod容器IP:8080访问,输出 hello world

问题诊断

pod状态

sudo kubectl describe pod helloworld

查看pod的状态以及创建过程等信息

node诊断

sudo kubect get no -o yaml

或者

sudo kubectl describe node xxx

查看node的健康检查等信息

参考资料

阿里云docker hub 拉取私有仓库镜像

转载于:https://my.oschina.net/u/583362/blog/3052071

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值