一、在阿里云容器服务Kubernetes部署并公开应用
部署应用
使用镜像创建
设置应用名称
在容器配置页签参数说明:
镜像名称:输入registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube。
镜像Tag:单击选择镜像Tag选择镜像的版本。若不指定,默认为最新版。示例:1.0。
资源限制:设置CPU为1 Core,内存为1024 MiB。
所需资源:设置CPU为0.25 Core,内存为512 MiB。
端口:设置容器的端口,输入名称ack-cube,容器端口80。
创建。
创建服务
类型:选择负载均衡>公网访问>新建SLB。
服务端口:设置服务端口为80。
容器端口:设置服务端口为80。
创建。
查看应用详情。可以查看应用的容器组、访问方式、事件、容器伸缩、历史版本、日志和触发器等信息。
测试应用
选择网络>服务。
外部端点列的IP地址。
打开浏览器可体验魔方游戏。
监控应用
运维管理>Prometheus监控。
在Prometheus监控页面,无状态应用监控。
在无状态应用监控页签,选择namespace为default,选择deployment为ack-cube。可以查看应用的资源使用情况
无状态应用监控页签
在集群Pod监控页签,可以查看单个Pod的资源使用情况。
二、Docker镜像管理与阿里云镜像仓库使用
搭建Docker服务
安装Docker的依赖库,添加Docker CE的软件源信息
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker CE
yum makecache fast && yum -y install docker-ce
启动Docker服务。
systemctl start docker
配置DockerHub镜像加速器。
tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF systemctl restart docker
Dockerfile编排应用
创建一个基于Golang的HelloWorld代码文件和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件。
mkdir -p /tmp/demo && cd /tmp/demo
创建HelloWorld文件,在容器环境中监听HTTP服务输出HelloWorld字符串。
cat > /tmp/demo/main.go << EOF package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello! World\n") }) fmt.Println("start to serve...") http.ListenAndServe(":80", nil) } EOF
创建Dockerfile文件。
cat > /tmp/demo/Dockerfile << EOF FROM golang:1.12-alpine # change current working dir WORKDIR /go/src/app # copy main.go into /go/src/app COPY . . # go build and install the app RUN go install -v ./... # run the app by default CMD ["app"] EOF
本地构建镜像并运行镜像
docker build构建镜像。
docker build . -t demo:v1
docker run命令运行镜像。
docker run -d -p 8000:80 demo:v1
curl访问容器中的HelloWorld服务。
curl localhost:8000
docker rm命令删除容器。
docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')
创建阿里镜像仓库
需要开通镜像仓库服务
设置Registry登录密码
设置阿里云Docker Registry密码
创建命名空间
填写 仓库名称 和 摘要
本地仓库
镜像仓库列表