[TOC]
# 编写测试Pod
为了方便之后的各种测试,现在使用dockerfile方式构建一个测试用的web镜像,并上传到阿里镜像服务中。
##### dockerfile:
~~~
#vim ~/dockerfile
FROM centos
# 使用centos的基础镜像
RUN echo "nameserver 114.114.114.114" > /etc/resolv.conf
# 给容器添加一个114的DBS,用于安装httpd
RUN yum install httpd -y
# 安装httpd
ENTRYPOINT /usr/sbin/init
# 用这个命令解决容器运行时,不能使用systemctl命令的问题
RUN systemctl enable httpd
# 开启 httpd 自启
RUN echo "hello" > /var/www/html/index.html
# 往 index.html写入内容
RUN echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.conf
# 修改httpd配置文件
EXPOSE 80
# 声明开启80端口
ENTRYPOINT /usr/sbin/httpd -DFOREGROUND
# 开机姿容运行httpd守护程序,没有守护程序容器执行完毕会马上退出
~~~
* 其中使用到的知识点 |命令|说明| |---|---| |FROM|选择需要使用的系统镜像版本| |RUN|在构建的时候运行命令,每使用依次RUN,就会多一层镜像层| |CMD(和RUN对比说明)|不是在构建的时候执行,而是在启动容器的时候默认执行的命令,如果在docker run的时候,命令中有附加命令,那么CMD中的命令会被覆盖| |ENTRYPOINT(和RUN对比说明)|这个也是在容器启动的时候运行,但是它并不会被docker run的命令给覆盖掉,依旧会执行| |EXPOSE|声明开启一个端口,但其实并没有实际开启,只有在docker run时候,附加了端口映射选项的时候,才会实际打开端口,如果启动容器是选择随即端口的话,这个随机端口总是会被映射到EXPOSE声明的端口上|
##### 构建docker镜像
~~~
docker build -f dockerfile --network host -t http:v1 .
# -f 指明dockerfile文件
# -t 指明镜像的标签
# 一定要加上 --network host 选项,要不然不能联网下载东西
# 最后一个 “ . ” 表名在当前目录下编译构建
~~~

构建完成

##### 上传镜像到阿里

##### [](http://k8s.zhouwh.com/k8s_HA%E9%83%A8%E7%BD%B2%E5%8F%8A%E5%BA%94%E7%94%A8/2.1/9.html#%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F)[](http://k8s.zhouwh.com/k8s_HA%E9%83%A8%E7%BD%B2%E5%8F%8A%E5%BA%94%E7%94%A8/2.1/9.html#%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F)拉取镜像
docker pull registry.cn-shenzhen.aliyuncs.com/zwh-kubea/http:\[镜像版本号\]
- 一、K8S的安装
- 1.1 安装环境
- 1.2 问题汇总
- 1.3 事前准备
- 1.4 安装配置负载均衡
- 1.5 安装K8S软件
- 1.6 初始化kubeadm
- 1.7 添加控制节点
- 1.8 添加计算节点
- 1.9 安装故障问题处理
- 1.10 安装管理dashboard
- 1.11 编写测试Pod
- 1.12 从外部访问集群中的Pod
- 1.13 部署metrics-server指标采集
- 二、Pod管理
- 2.1 Pod 资源需求和限制
- 2.2 Init 容器
- 2.3 Pod 健康检查(探针)和重启策略
- 2.4 Pod 生命周期(钩子Hook)
- 2.5 静态Pod
- 2.6 初始化容器(init container)
- 2.7 资源限制
- 三、资源控制器
- 3.1 Deployment
- 3.2 StatefulSet
- 3.3 DaemonSet
- 3.4 Job
- 3.5 定时任务
- 3.6 准入控制器
- 3.7 自动伸缩
- 3.8 ReplicaSet
- 四、存储
- 4.1 Secret 管理敏感信息
- 4.2 ConfigMap 存储配置
- 4.3 Volume
- 4.4 PV
- 4.5 PVC
- 4.6 StorageClass
- 4.7 暴露宿主机信息给Pod
- 五、服务Service
- 5.1 Service 资源
- 5.2 服务发现
- 5.3 服务暴露
- 5.4 Ingress 资源
- 5.5 Ingress 专题
- 5.6 traefik 2.X版本使用
- 六、认证、授权、准入控制
- 6.1 服务账户
- 6.2 LimitRange资源与准入控制器
- 6.3 ResourceQuota 资源与准入控制器
- 七、Helm
- 7.1 Helm 安装
- 八、 istio
- 8.1 istio 介绍
- 8.2 iotis 安装
- 九、calico
- 9.1 两种网络模式
- 9.2 全互联模式 与 路由反射模式
- 9.3 BGP跨网段(大型网络)
- 十、Ingress
- 10.1 安装 LoadBalancer
- 10.2 部署 ingress-nginx
- 10.3 Ingress-nginx 的使用
- 10.4 开启TCP和UDP
- 使用中的问题
- CSI Node问题
