Centos下构建基于Kubernetes的Openshift

配置主机名

hostname set-hostname master.example.com

安装Docker

yum install -y docker

启动并设置开机自启动Docker

systemctl start docker
systemctl enable docker

镜像加速,配置/etc/sysconfig/docker

为DOCKER_OPTS变量追加参数–registry-mirror=https://docker.mirrors.ustc.edu.cn
添加如下参数:

OPTION='--selinux-enbaled --log-driver=joutnald --registry-mirror=https://docker.mirrors.ustc.edu.cn'

重启Docker使其生效

systemctl restart docker

测试Docker是否正常工作

运行一个hello-openshift镜像,用go语言编写 如若一切正常 容器将成功启动 并监听8080 8888 port

  docker run -it openshift/hello-openshift

下载Openshift origin安装包

wget https://github.com/openshift/origin/releases/download/v1.4.1/openshift-origin-server-v1.4.1-3f9807a-linux-64bit.tar.gz

安装及启动OpenShift Origin

cd /opt/ 
tar -zxvf openshift-origin-server-v1.4.1-3f9807a-linux-64bit.tar.gz
ln- s openshift-origin-server-v1.4.1-3f9807a-linux-64bit /opt/openshift

将Openshift相关命令追加至系统PATH变量中

编辑/etc/profile

vi /etc/profile
PATH=$PATH:/opt/openshift/

执行source命令使其配置生效

sources /etc/profile

测试shell能否找到openshift命令

openshift version
Kubernetets版本为:1.3.0
etcd 2.3.0+git
cd /opt/openshift
openshift start

登录Openshift origin控制台

firefox https://master.example.com:8443
username dev
password dev

运行一个容器应用

创建项目(priject对象)

项目是openshift中的战役中资源组织方式 配额管理和网络隔离的基本单位户

NEW Project—>输入项目名hellp-world—>输入展示名—>hello world—>Create

部署Docker镜像

Openshift是以原生的docker作为平台的容器引擎
Docker是允许容器一root用户身份执行容器内的程序
Openshift不允许容器以root身份执行容器内的程序
Image Name—>输入openshift/hellpo-openshift—>点击放大按钮 16页


curl 172.17.0.3:8080
Hello OpenShift!

Openshift命令行工具
oc是具有权限管控的 需要先通过oc login 以dev用户身份登录

oc version
oc login -u dev https://192.168.172.167:8443

创建一个新项目hello-world-oc

oc new-project hello-world-oc

查看当前项目容器的列表

oc get pod

以集群管理员(system:admin)登录

mkdir -p ~/.kube
cp /opt/openshift/openshift.local.config/master/admin.kuberconffig ~/.kube/config
cp: overwrite '/root/.kube/config'? y

通过oc login命令登录

oc login -u system:admin

查看当前用户名

ocwhoami

查看节点信息

oc get node

添加Router

添加Router组建 router是外界访问集群内容器应用的入口 集群外部的请求都会到达router 并有router分发到具体

切换到default

oc project default

Service Account(系统账号)是Openshift中专门供程序和组建使用的账号

oadm polict add-scc-to-user privileged system:serviceaccountLdefault:router

创建Router

oadm router router --replicas=1 --service-account=router

oc 面向一般用户 oadm面向集群管理员 可进行 集群的管理和配置

oc get pad -n default

查看Haproxy是否在监听主机的80.443端口

ss- ltm |egrep -w	*80|443* 

添加Registry

部署集群内部的Docker Registry 内部的Docker镜像仓库
S2I 工作是辅助将应用的源代码转换成可以部署的Docker镜像

切换刀片default

oc project default

部署Registry

oadm registry config=/opt/openshift/openshift.local.config/master/admin . kubeconfig service-account=registry

查看Registry是否处于运行状态

由于部署的Registry没有启用HTTPS 所以修改Docker配置文件

Docker以非HTTPS方式连接Resistry

vi /etc/sysconfig/Docker

为OPTION变量值追加–insecure-registryt=https://172.30.0.0/16.

OPTIONS= ’ --selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors .ustc . edu . cn --工nsecure-registry=l72.30 . 0.0/16'

重启Docker服务 配置生效

systemctl restart docker

添加Image Stream

切换openshift

oc project OpenShift

导入Image Stream

curl https://raw.githubusercontent.com/openshift/origin/v1.3.0/examples/imager-sterams/image-streams-centos7.json|oc create -f --n OpenShift

列出刚刚到导入Image Stream对象

oc get is -n OpenShift

添加Template

Template 特性 可以多模块 满足外部依赖 根据实际需求 配置传递不同参数

切换到openshift

oc project OpenShift

部署Cake和MySQL

oc create -f https://raw.githubusercontent.com/openshift/origin/v1.3.0/examples.quickstarts/cakephp-mysql.json -n openshift

查看导入模板信息

oc get template -n OpenShift

查看详细内容

oc get template cakeup-mysql-example -o  json -n openshift

刷新openshift web控制台的服务目录界面->过滤器中输入cake->即可看到刚导入的模板

导入系统

oc create -f https://raw.githubusercontwent.com/nichochen/openshift-book-source/master/template/wildly-basic-s2i.template.json -n OpenShift

部署CakePHP及MySQK数据库

登陆Openshift Web控制台->New project->项目名:hellp-world-php->create->Template->Application hostname:php.apps.exmaple.com->Create->Continue overview->View log
1赞

服务器资源由ZeptoVM赞助

Partners Wiki IRC