k8s相关练习

【题目-1】docker-compose编排部署

在master节点上编写/root/owncloud/docker-compose.yaml文件,具体要求如下:

(1)镜像:owncloud:latest;和mysql:5.6;

(2)端口映射:owncloud(5679:80)、mysql(3306:3306)

(3)MySQL root用户密码:123456;

完成后编排部署owncloud,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3.0"
services:
owncloud:
image: owncloud:latest
container_name: owncloud
ports:
- "5679:80"
depends_on:
- mysql
mysql:
image: mysql:5.6
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3306:3306"

【题目0】docker-compose编排部署

在master节点上编写/root/wordpress/docker-compose.yaml文件,具体要求如下:

(1)容器名称:wordpress;镜像:wordpress:latest;端口映射:82:80;

(2)容器名称:mysql;镜像:mysql:5.6;

(3)MySQL root用户密码:123456;

(4)创建数据库wordpress。

完成后编排部署WordPress,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3.0"
services:
wordpress:
image: wordpress:latest
container_name: wordpress
ports:
- "82:80"
depends_on:
- mysql
restart: always
mysql:
image: mysql:5.6
container_name: mysql
environment::
MYSQL_ROOT_PASSWORD: 123456
restart: always

【题目1】容器化部署Redis

在master节点上编写/root/redis/Dockerfile文件构建chinaskill-redis:v1.1镜像,具体要求如下:

(1)基础镜像:centos:centos7.5.1804;

(2)作者:Chinaskill;

(3)修改配置文件中的bind 127.0.0.1为bind 0.0.0.0;

(4)设置Redis免密,并关闭保护模式;

(5)开放端口:6379;

(6)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
FROM 192.168.10.8/library/centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -rfv /etc/yum.repos.d/*
ADD http.repo /etc/yum.repos.d/
RUN yum install -y redis \
&& sed -i 's/^bind 127.0.0.1/bind\ 0\.0\.0\.0/' /etc/redis.conf \
&& sed -i 's/protected-mode\ yes/protected-mode\ no/' /etc/redis.conf
EXPOSE 6379
CMD ["redis-server", "/etc/redis.conf"]

http.repo

1
2
3
4
5
6
7
8
[centos]
name=centos
baseurl=http://192.168.100.10/centos
gpgcheck=0
[k8s]
name=k8s
baseurl=http://192.168.100.10/paas/kubernetes-repo/
gpgcheck=0

【题目2】容器化部署MariaDB

在master节点上编写/root/mariadb/Dockerfile文件构建chinaskill-mariadb:v1.1镜像,具体要求如下:

(1)基础镜像:centos:centos7.5.1804;

(2)作者:Chinaskill;

(3)设置数据库密码:123456;

(4)创建数据库gpmall并导入数据库文件gpmall.sql;

(5)设置字符编码:UTF-8;

(6)开放端口:3306;

(7)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
ADD ["http.repo", "gpmall.sql", "db_init.sh", "/root/"]
ENV MARIADB_USER=root
ENV MARIADB_PASS=123456
RUN rm -rfv /etc/yum.repos.d/* && mv /root/http.repo /etc/yum.repos.d/ && yum install -y mariadb-server crudini && crudini --set /etc/my.cnf mysqld character-set-server utf8 && crudini --set /etc/my.cnf.d/client.cnf client default-character-set utf8
RUN mysql_install_db --user=mysql && sleep 3
RUN bash /root/db_init.sh
EXPOSE 3306
CMD ["mysqld_safe"]

http.repo

1
2
3
4
5
6
7
8
9
10
11
12
[centos]
name=centos
baseurl=http://192.168.100.10/centos
gpgcheck=0
[k8s]
name=k8s
baseurl=http://192.168.100.10/paas/kubernetes-repo/
gpgcheck=0
[iaas]
name=iaas
baseurl=http://192.168.100.10/iaas/iaas-repo
gpgcheck=0

db_init.sh

1
2
3
4
#!/usr/bin/bash
mysqld_safe &
sleep 3
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"

【题目3】容器化部署Zookeeper

在master节点上编写/root/zookeeper/Dockerfile文件构建chinaskill-zookeeper:v1.1镜像,具体要求如下:

(1)基础镜像:centos:centos7.5.1804;

(2)作者:Chinaskill;

(3)开放端口:2181;

(4)设置服务开机自启。

完成后构建镜像,使用构建的镜像运行容器myzookeeper,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
FROM 192.168.10.8/library/centos:centos7.5.1804
MAINTAINER Chinaskill
ADD ["jdk-8u77-linux-x64.tar.gz", "zookeeper-3.4.14.tar.gz", "/root/"]
RUN mv /root/jdk1.8.0_77 /usr/ && mv /root/zookeeper-3.4.14/conf/zoo_sample.cfg /root/zookeeper-3.4.14/conf/zoo.cfg
ENV JAVA_PATH=/usr/jdk1.8.0_77
ENV PATH=$JAVA_PATH/bin:$PATH
ENV ZK_HOME=/root/zookeeper-3.4.14
ENV PATH=$ZK_HOME/bin:$PATH
EXPOSE 2181
CMD ["zkServer.sh", "start-foreground"]

[题目A] Kafka容器化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
RUN mkdir /opt/kafka
ADD kafka_2.11-1.1.1.tgz /opt/kafka
RUN sed -i -e "s/num.partitions.*$/num.partitions=3/g" /opt/kafka/kafka_2.11-1.1.1/config/server.properties
RUN echo "source /root/.bash_profile" > /opt/kafka/start.sh &&\
echo "cd /opt/kafka/kafka_2.11-1.1.1">> /opt/kafka/start.sh &&\
echo "sed -i 's%zookeeper.connect=.*$%zookeeper.connect=mall-zookeeper:2181%g' /opt/kafka/kafka_2.11-1.1.1/config/server.properties" >> /opt/kafka/start.sh &&\
echo "bin/kafka-server-start.sh config/server.properties" >> /opt/kafka/start.sh &&\
chmod a+x /opt/kafka/start.sh
EXPOSE 9092
ENTRYPOINT ["sh","/opt/kafka/start.sh"]

【题目4】安装Jenkins环境

在master节点上部署Jenkins服务,具体要求如下:

(1)容器名称:jenkins;

(2)端口映射:8080:8080;

(3)使用root身份生成容器;

(4)离线安装Jenkins插件;

(5)设置Jenkins用户:chinaskill;密码:000000;

使用chinaskill用户登录Jenkins,完成后提交master节点的用户名、密码和IP到答题框。

1
docker run -d -p 8080:8080 -u root --name jenkins 192.168.100.5/library/jenkins:2.262-centos

https://blog.csdn.net/pansaky/article/details/80746736 插件导入到docker目录重启即可

【题目5】安装Gitlab环境

在master节点上使用镜像gitlab/gitlab-ce:12.9.2-ce.0部署Gitlab服务,具体要求如下:

(1)容器名称:mygitlab;

(2)端口映射:1022:22、81:80、443:443;

(3)容器重启策略:always;

(4)设置root用户及密码;

(5)使用root用户登录Gitlab,密码:00000000;

(6)新建项目ChinaskillProject,将/opt/ChinaskillProject中的代码上传到ChinaskillProject项目中。

完成后提交master节点的用户名、密码和IP到答题框。

1
docker run -d -p 1022:22 -p 81:80 -p 443:443 --name mygitlab --restart=always gitlab/gitlab-ce:12.9.2-ce.0

【题目6】配置Jenkins连接Gitlab

配置Jenkins连接Gitlab,具体要求如下:

(1)设置Outbound requests;

(2)生成“Access Tokens”并命名为jenkins;

(3)设置Jenkins取消对’/project’ end-point进行身份验证;

(4)测试Jenkins与Gitlab的连通性。

完成后提交master节点的用户名、密码和IP到答题框。

1
2
jinkens构建时启用触发器Build when a change is pushed。。。。。
gitlab设置创建访问令牌 名字jenkins

【题目7】Pod管理

在master节点/root目录下编写yaml文件nginx.yaml,具体要求如下:

(1)Pod名称:nginx-pod;

(2)命名空间:default;

(3)容器名称:mynginx;

(4)镜像:nginx;拉取策略:IfNotPresent;

(5)容器端口:80。

完成后使用该yaml文件创建Pod,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
namespace: default
spec:
containers:
- name: mynginx
imagePullPolicy: IfNotPresent
image: 192.168.10.8/library/nginx:latest
ports:
- containerPort: 80

【题目8】Namespace管理

在master节点/root目录下编写yaml文件my-namespace.yaml,具体要求如下:

(1)Namespace名称:test。

完成后使用该yaml文件创建Namespace,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
apiVersion: v1
kind: Namespace
metadata:
name: test

【题目9】Deployment管理

在master节点/root目录下编写yaml文件nginx-deployment.yaml,具体要求如下:

(1)Deployment名称:nginx-deployment;

(2)命名空间:default;

(3)Pod名称:nginx-deployment,副本数:2;

(4)网络:hostNetwork;

(5)镜像:nginx;

(6)容器端口:80

完成后使用该yaml文件创建Deployment,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
hostNetwork: true
containers:
- name: nginx
image: 192.168.10.8/library/nginx:latest
ports:
- containerPort: 80

【题目10】PV管理

在master节点的/root/目录下编写pv的yaml文件pv.yaml,要求如下:

(1)名字:pv-exam;

(2)类型:HostPath;

(3)路径:/data;

(4)大小:1G;

(5)回收策略:Recycle;

(6)模式:ReadOnlyMany;

完成后使用该yaml文件启动PV,并提交master节点的用户名、密码到IP答题框。

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-exam
spec:
capacity:
storage: 1Gi
accessModes:
- ReadOnlyMany
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /data

【题目11】资源配额管理

在master节点/root/目录下编写Pod的yaml文件memory-request-limit.yaml,要求如下:

(1)命名空间:default;

(2)Pod名称:memory-demo;

(3)镜像:nginx:latest;镜像拉去策略:ifNotPresent;

(4)容器名称:memory-demo;

(5)内存请求为100MIB,并被限制在200MIB以内。

完成后使用该yaml文件启动Pod,并提交master节点的用户名、密码和IP到答题框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: default
spec:
containers:
- image: 192.168.10.8/library/nginx:latest
name: nginx
imagePullPolicy: IfNotPresent
resources:
requests:
memory: 100Mi
limits:
memory: 200Mi