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
    

Log in to reply