OpenShift3.11 社区版搭建

打印 上一主题 下一主题

主题 1882|帖子 1882|积分 5646

一、资源规划

HostnameIPOSCPUMemDiskmaster192.168.78.131CentOS7.92vCPU4G60Gnode1192.168.78.132CentOS7.92vCPU4G60Gnode2192.168.78.133CentOS7.92vCPU4G60G 二、安装过程:

2.1 前期配置

开启所有节点的 SELinux (所有主机实行)

  1. grep -v ^# /etc/selinux/config | grep -v ^$
  2. # 显示如下则证明已经开启了 SELinux,否则照此修改配置,并重启主机
  3. SELINUX=enforcing
  4. SELINUXTYPE=targeted
复制代码
确保所有的节点都已经开启 SELinux

所有节点关闭防火墙(所有主机实行)

  1. systemctl stop firewalld && systemctl disable firewalld
复制代码
修改 /etc/hosts文件(Master主机实行)

  1. vi /etc/hosts
  2. # 新增如下内容
  3. 192.168.78.131  master.lab.unicom.com  master
  4. 192.168.78.132  node1.lab.unicom.com  node1
  5. 192.168.78.133  node2.lab.unicom.com  node2
复制代码
复制到其他节点(Master主机实行)

  1. for i in 2 3;do scp /etc/hosts root@192.168.78.13$i:/etc;done
复制代码
配置免密登录(Master主机实行)

  1. ssh-keygen -t rsa -P ''
  2. ssh-copy-id master
  3. ssh-copy-id master.lab.unicom.com
复制代码
复制到其他节点(Master主机实行)

  1. for i in {1..3};do ssh-copy-id 192.168.26.13$i;done
  2. for i in {1..2};do ssh-copy-id node$i;done
  3. for i in {1..2};do ssh-copy-id node$i.lab.unicom.com;done
复制代码
2.2 安装依赖包

安装 OpenShift 依赖的软件包(所有主机实行)

  1. yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct bash-completion.noarch python-passlib NetworkManager vim
复制代码
安装docker(所有主机实行)

  1. yum -y install docker-1.13.1
复制代码
配置 Docker 镜像仓库地点(所有主机实行)

  1. cat > /etc/docker/daemon.json<<EOF
  2. {
  3.   "registry-mirrors" : [
  4.       "https://registry.docker-cn.com",
  5.       "https://docker.mirrors.ustc.edu.cn",
  6.       "http://hub-mirror.c.163.com",
  7.       "https://cr.console.aliyun.com/",
  8.       "https://0trl8ny5.mirror.aliyuncs.com"ps -ef
  9.   ]
  10. }
  11. EOF
复制代码
重启 Docker 使得配置地点见效(所有主机实行)

  1. systemctl daemon-reload && systemctl restart docker && systemctl enable docker
复制代码
Master 主机上安装 Ansible

  1. yum -y install epel-release
  2. yum -y install centos-release-ansible-28.noarch
  3. yum list ansible --showduplicates
  4. yum -y install ansible-2.8.6
  5. # 查看ansible版本
  6. ansible --version
复制代码
2.3 安装/配置 openshift

Master 主机上下载安装 openshift-ansible-3.11.764-1.tar.gz

下载 openshift-ansible-3.11.764-1.tar.gz 安装包,解压后文件夹重命名
  1. wget ttps://github.com/openshift/openshift-ansible/archive/refs/tags/openshift-ansible-3.11.764-1.tar.gz
  2. tar -zxvf openshift-ansible-3.11.764-1.tar.gz
  3. mv openshift-ansible-openshift-ansible-3.11.764-1/  openshift-ansible
复制代码
编写ansible Inventory文件(Master 主机)

  1. vim /etc/ansible/hosts
  2. # 修改内容如下
  3. [OSEv3:children]
  4. masters
  5. nodes
  6. etcd
  7. [OSEv3:vars]
  8. ansible_ssh_user=root
  9. # 使用origin社区版
  10. openshift_deployment_type=origin
  11. deployment_type=origin
  12. # 指定安装版本
  13. openshift_release=v3.11
  14. # 指定默认域名,访问时需要使用该域名,无dns服务器时需要手动添加本地hosts文件
  15. openshift_master_default_subdomain=lab.unicom.com
  16. # 禁止磁盘、内存、镜像的检查
  17. openshift_disable_check=disk_availability,docker_storage,memory_availability
  18. # disk_availability: 报错信息是推荐的master磁盘空间剩余量大于40GB。测试环境无法满足;跳过检测
  19. # memory_availability: 报错信息是推荐的master内存为16GB;node内存为8GB;测试环境无法满足;跳过检测
  20. # docker_image_availability: 报错信息是需要的几个镜像未找到;选择跳过;装完集群后;在使用的时候再自行下载
  21. # docker_storage: 报错信息是推荐选择一块磁盘空间存储镜像;这里选择跳过。采用docker默认的方式存储镜像
  22. openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
  23. openshift_master_htpasswd_file=/etc/origin/master/htpasswd
  24. # ntp时间同步
  25. openshift_clock_enabled=true
  26. # 节点配额
  27. openshift_node_groups.edits={'pods-per-core': ['10']}
  28. # 主机组
  29. [masters]
  30. master openshift_schedulable=True
  31. # 节点的主机组,包含region和infra
  32. [nodes]
  33. master openshift_node_groups.labels="{'region': 'infra'}"
  34. node1 openshift_node_groups.labels="{'region': 'infra', 'zone': 'default'}"
  35. node2 openshift_node_groups.labels="{'region': 'infra', 'zone': 'default'}"
  36. master openshift_node_group_name='node-config-master'
  37. node1 openshift_node_group_name='node-config-compute'
  38. node2 openshift_node_group_name='node-config-compute'
  39. # 至少有一个节点需要是node-config-infra
  40. node2 openshift_node_group_name='node-config-infra'
  41. [etcd]
  42. master
复制代码
摆设前检测

  1. # 提前创建密码保存文件,不然待会会报错
  2. mkdir -p /etc/origin/master/
  3. touch /etc/origin/master/htpasswd
  4. [root@master ~]# ansible-playbook  -i  /etc/ansible/hosts  /root/openshift-ansible/playbooks/prerequisites.yml
  5. # 执行结束后若无问题会显示localhost、master、node1、node2的failed=0,Initialization  : Complete (0:01:33)
  6. # 若有问题,排错后多次执行
复制代码
正式摆设

  1. ansible-playbook  -i  /etc/ansible/hosts  /root/openshift-ansible/playbooks/deploy_cluster.yml
  2. # 部署过程中会出现pull faild发生retry,等待重试完成即可
复制代码
三、openshift 验证

  1. # 安装完成结果检查
  2. oc get nodes
复制代码

node2 节点的 roles 范例不对,需要将 node2 打上 compute 标签,因为它也是盘算节点
  1. oc label node node2 node-role.kubernetes.io/compute=true
复制代码
再次检查

  1. # 查看pods
  2. oc get pods
复制代码

利用管理员登录集群并创建管理员账号

  1. oc login -u system:admin
  2. # 检查登录用户
  3. oc whoami
  4. # 创建管理员账号
  5. htpasswd -b /etc/origin/master/htpasswd admin redhat
  6. # 使用新用户登录集群
  7. oc login -u admin -p redhat
  8. # 检查登录用户
  9. oc whoami
  10. # admin
复制代码
利用欣赏器访问 OpenShift Web Console

注意:需要提前为宿主机设置hosts
  1. # OpenShift
  2. 192.168.78.131 master.lab.unicom.com
复制代码
利用宿主机欣赏器访问:https://master.lab.unicom.com:8443/
利用用户名密码(admin/redhat)访问即可
快速创建一个小的应用

注意:需要提前为宿主机设置hosts
  1. # 用户登录
  2. oc login -u admin -p redhat
  3. # 创建项目、切换至该项目
  4. oc new-project hello
  5. oc project hello
  6. # 拉取镜像
  7. docker pull docker.io/openshift/hello-openshift
  8. # 通过镜像创建应用
  9. oc new-app docker.io/openshift/hello-openshift
复制代码

  1. # 获取pod 的详细信息
  2. oc status
  3. # 访问该服务
  4. curl 172.30.223.69:8080
复制代码

四、openshift常用操纵命令

  1. #通过CLI登陆openshift
  2. oc login https://10.19.169.XX:8443 -u username -p password
  3. #退出登陆
  4. oc logout
  5. #查看所有的proeject信息
  6. oc projects
  7. #创建新的project
  8. oc new-project myproject
  9. #切换project空间到myproject下
  10. oc project myproject
  11. #查看project下的服务状态
  12. oc status
  13. #查看project下的所有服务
  14. oc get svc -n myproject
  15. #查看project下的pod信息
  16. oc get pods -n myproject
  17. #获取project下服务的buildconfig信息,一个build就是一个把输入参数转化为输出结果的过程。通常,这个过程用于把source code转化为一个执行的image。
  18. oc describe bc bcname
  19. #获取project下服务的deploymentconfig信息,DeploymentConfig定义了在Openshift部署什么,如何运行。
  20. oc describe dc dcname
  21. #将pod内部服务对外暴露
  22. oc expose svc servicename
  23. #查看服务的build config日志
  24. oc logs -f bc/servicename
  25. #查看服务的deploy config日志
  26. oc logs -f dc/servicename
  27. #在project下基于jdk8镜像和GitLab代码 创建app,new-app 为微服务应用创建了相应的bc、dc和svc
  28. oc new-app openshift/redhat-openjdk18-openshift~http://10.119.169.XX/ChinaTechnologyPlatform/XX.git --allow-missing-imagestream-tags --strategy=source
  29. #根据is创建app
  30. oc new-app -i openshift/custom-mysql:latest -p MYSQL_USER=workflow -p MYSQL_PASSWORD=Kpmg#1234 -p MYSQL_DATABASE=workflowdb -p MYSQL_ROOT_PASSWORD=Kpmg#1234 -p MYSQL_LOWER_CASE_TABLE_NAMES=1 --name=“mysqlserver” -n workflow-service-dev
  31. #基于template模板创建应用
  32. oc new-app --template=jenkins-persistent -n jenkins-pipeline
  33. #查看project下的pod信息
  34. oc get pods
  35. #查看模板信息
  36. oc get template
  37. #openshift模板导出
  38. oc export bc,dc,svc,is,route -o json –as-template=”test-template” > ~/test-template.yaml
  39. #扩展容器pod数
  40. oc scale dc service-name --replicas=5
  41. #编辑template模板
  42. oc edit template templatename
  43. #登陆pod内部
  44. oc exec podname -it – bash -li
  45. #创建template
  46. 可以通过openshift的web console台导入
  47. #给pv 打上标签disktype=ssd
  48. oc label pv pv002 disktype=ssd
  49. #查看pv上的标签
  50. oc get pv --show-labels
  51. #回滚到最近部署成功的版本
  52. oc rollout undo dc/dcname
  53. #获取dc部署版本信息
  54. oc rollout history dc/dcname
  55. #回滚到指定的版本
  56. oc rollout undo dc/dcname --to-revision=2
  57. 创建一个imagestream 并将内部镜像仓库的镜像同步到imagestream中
  58. #创建imagestrem
  59. oc create imagestream custom-mysql
  60. #创建imagestream tag和内部镜像关联上
  61. oc tag registry.example.com/custom-mysql:latest custom-mysql:latest
  62. #同步已有镜像到imagestream
  63. oc import-image custom-mysql:latest --insecure -n openshift
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表