openshift环境部署

1.基础环境准备(以下步骤所有节点进行)

1.1主机名:

 hostnamectl set-hostname ocp-master
 hostnamectl set-hostname ocp-node01
 hostnamectl set-hostname ocp-node02

1.2关闭防火墙和selinux

 systemctl stop firewalld
 systemctl disable firewalld
 setenforce 0
 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
 sysctl net.ipv4.ip_forward=1

1.3设置hosts文件

 vi /etc/hosts
 192.168.1.20 ocp-master
 192.168.1.21 ocp-node01
 192.168.1.22 ocp-node02

1.4设置免密登陆

 ssh-keygen
 ssh-copy-id 192.168.1.20
 ssh-copy-id 192.168.1.21
 ssh-copy-id 192.168.1.22

1.5安装基础包

yum install -y wget git ntp net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct nfs-utils yum-utils docker NetworkManager yum-utils docker NetworkManager -y

1.6安装etcd(在ocp-master安装)

yum install -y etcd &&systemctl enable etcd &&systemctl start etcd

1.7配置daemon.json

 echo '{
 "registry-mirrors": ["https://x19jk9l1.mirror.aliyuncs.com"],
 "insecure-registries": ["192.168.1.237:5000"],
 "insecure-registries": ["192.168.1.154"],
 "exec-opts": ["native.cgroupdriver=systemd"]
 }' >/etc/docker/daemon.json

1.8启动服务

 systemctl start NetworkManager
 systemctl enable NetworkManager
 systemctl daemon-reload && systemctl enable docker && systemctl restart docker

2.服务部署

2.1拉取镜像(ocp-master节点)

 echo 'docker.io/cockpit/kubernetes
 docker.io/openshift/origin-haproxy-router
 docker.io/openshift/origin-haproxy-router  
 docker.io/openshift/origin-service-catalog
 docker.io/openshift/origin-node
 docker.io/openshift/origin-deployer
 docker.io/openshift/origin-control-plane
 docker.io/openshift/origin-control-plane
 docker.io/openshift/origin-template-service-broker
 docker.io/openshift/origin-pod
 docker.io/cockpit/kubernetes
 docker.io/openshift/origin-web-console
 quay.io/coreos/etcd' >image.txt && while read line; do docker pull $line ; done<image.txt

2.2拉取镜像(ocp-node01、02节点)

 echo 'docker.io/openshift/origin-haproxy-router
 docker.io/openshift/origin-node
 docker.io/openshift/origin-deployer
 docker.io/openshift/origin-pod
 docker.io/ansibleplaybookbundle/origin-ansible-service-broker
 docker.io/openshift/origin-docker-registry' >image.txt && while read line; do docker pull $line ;   done<image.txt

2.3拉取openshift git项目

git clone -b release-3.11 https://github.com/openshift/openshift-ansible.git

2.4安装ansible

wget https://buildlogs.centos.org/centos/7/paas/x86_64/openshift-origin311/Packages/a/ansible-2.6.5-1.el7.noarch.rpm
yum localinstall ansible-2.6.5-1.el7.noarch.rpm

2.5编辑ansible hosts(在/etc/ansible/hosts添加如下内容)

 [all]
 all下放所有机器节点的名称
 ocp-master
 ocp-node01
 ocp-node02
 [OSEv3:children]
 这里放openshfit的角色,这里有三个角色,master,node,etcd
 masters
 nodes
 etcd
 [OSEv3:vars]
 这里是openshfit的安装参数
 指定ansible使用ssh的用户为root
 ansible_ssh_user=root
 指定方式为origin
 openshift_deployment_type=origin
 指定版本为3.11
 openshift_release=3.11
 openshift_enable_service_catalog=false
 openshift_clock_enabled=true
 openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
 openshift_disable_check=disk_availability,docker_storage,memory_availability,docker_image_availability
 [masters]
 master角色的机器名称包含
 ocp-master
 [etcd]
 etcd角色的机器名称包含
 ocp-master
 [nodes]
 node角色的机器名称包含
 master openshift_node_group_name='node-config-all-in-one'
 node01 openshift_node_group_name='node-config-compute'
 node02 openshift_node_group_name='node-config-compute'
 ocp-master openshift_node_group_name='node-config-master'
 ocp-node01 openshift_node_group_name='node-config-compute'
 ocp-node02 openshift_node_group_name='node-config-compute'
 gluster[1:6].example.com openshift_node_group_name='node-config-compute-storage'
 openshift_enable_service_catalog=false
 openshift_hosted_registry_storage_kind=nfs
 openshift_hosted_registry_storage_access_modes=['ReadWriteMany']
 openshift_hosted_registry_storage_nfs_directory=/data/docker
 openshift_hosted_registry_storage_nfs_options='*(rw,root_squash)'
 openshift_hosted_registry_storage_volume_name=registry
 openshift_hosted_registry_storage_volume_size=20Gi
 openshiftclock_enabled=true
 ansible_service_broker_install=false

2.6检查并执行ansible剧本

 ansible-playbook playbooks/prerequisites.yml  #检查(检查OK后,执行安装剧本)
 ansible-playbook ~/openshift-ansible/playbooks/deploy_cluster.yml  #安装 (安装过程需要40分钟左右)
 此时会提示一个报错,这时需要执行如下命令即可
 oc label node ocp-master node-role.kubernetes.io/infra=true

2.7安装openshift web管理后台

ansible-playbook ~/openshift-ansible/playbooks/openshift-web-console/config.yml

2.8安装cockpit以及命令补全

yum install -y cockpit cockpit-docker cockpit-kubernetes &&systemctl start cockpit &&systemctl enable cockpit.socket &&
 mkdir -p /usr/share/bash-completion/openshift
 oc completion bash >/usr/share/bash-completion/openshift/bash_completion
 echo "source /usr/share/bash-completion/openshift/bash_completion" >> ~/.bash_profile
 source ~/.bash_profile
 yum install bash-completion -y
 source /usr/share/bash-completion/bash_completion
 source <(kubectl completion bash)
 source ~/.bash_profile

2.9检查节点状态

[root@ocp-master mysqlsecret]# oc get nodes
 NAME         STATUS    ROLES          AGE       VERSION
 ocp-master   Ready     infra,master   1d        v1.11.0+d4cacc0
 ocp-node01   Ready     compute        1d        v1.11.0+d4cacc0
 ocp-node02   Ready     compute        1d        v1.11.0+d4cacc0

2.10检查基础pod状态

[root@ocp-master mysqlsecret]# oc get pod
 NAME                       READY     STATUS    RESTARTS   AGE
 docker-registry-1-sxpc4    1/1       Running   3          23h
 registry-console-1-ph8jc   1/1       Running   3          1d
 router-1-jmfcm             1/1       Running   3          23h

3.创建持久卷(PV)

前提需要部署NFS服务器(192.168.1.23)

[root@ocp-master yaml]# cat pv.yaml 
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv001
   labels:
     name: pv001
     type: nfs
 spec:
   nfs:
     path: /data/v001
     server: 192.168.1.23
   capacity:
     storage: 50Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv002
   labels:
     name: nfs-pv002
     type: nfs
 spec:
   nfs:
     path: /data/v002
     server: 192.168.1.23
   capacity:
     storage: 50Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv003
   labels:
     name: nfs-pv003
     type: nfs
 spec:
   nfs:
     path: /data/v003
     server: 192.168.1.23
   capacity:
     storage: 30Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv004
   labels:
     name: nfs-pv004
     type: nfs
 spec:
   nfs:
     path: /data/v004
     server: 192.168.1.23
   capacity:
     storage: 30Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv005
   labels:
     name: nfs-pv005
     type: nfs
 spec:
   nfs:
     path: /data/v005
     server: 192.168.1.23
   capacity:
     storage: 10Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv006
   labels:
     name: nfs-pv006
     type: nfs
 spec:
   nfs:
     path: /data/v006
     server: 192.168.1.23
   capacity:
     storage: 10Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv007
   labels:
     name: nfs-pv007
     type: nfs
 spec:
   nfs:
     path: /data/v007
     server: 192.168.1.23
   capacity:
     storage: 5Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv008
   labels:
     name: nfs-pv008
     type: nfs
 spec:
   nfs:
     path: /data/v008
     server: 192.168.1.23
   capacity:
     storage: 5Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv009
   labels:
     name: nfs-pv009
     type: nfs
 spec:
   nfs:
     path: /data/v009
     server: 192.168.1.23
   capacity:
     storage: 2Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
 apiVersion: v1
 kind: PersistentVolume
 metadata:
   name: nfs-pv010
   labels:
     name: nfs-pv010
     type: nfs
 spec:
   nfs:
     path: /data/v010
     server: 192.168.1.23
   capacity:
     storage: 2Gi
   accessModes:
     - ReadWriteMany
     - ReadWriteOnce
     - ReadOnlyMany
   persistentVolumeReclaimPolicy: Retain
kubectl create -f pv.yaml   #执行创建

检查

[root@ocp-master yaml]# kubectl get pv
 NAME        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM           STORAGECLASS   REASON    AGE
 nfs-pv001   50Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv002   50Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv003   30Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv004   30Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv005   10Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv006   10Gi       RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv007   5Gi        RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv008   5Gi        RWO,ROX,RWX    Retain           Available                                            23h
 nfs-pv009   2Gi        RWO,ROX,RWX    Retain           Bound       blog/blog-pvc                            23h
 nfs-pv010   2Gi        RWO,ROX,RWX    Retain           Bound       blog/db-pvc                              23h
openshift环境部署

搭建完毕

原创文章,作者:admin,如若转载,请注明出处:https://www.starz.top/2021/01/29/openshift%e7%8e%af%e5%a2%83%e9%83%a8%e7%bd%b2/

发表评论

邮箱地址不会被公开。 必填项已用*标注