OpenShift v3.11 安装手顺-Ansible one master two node

基本环境

操作系统:CentOS 7.4

主机名ip地址角色
master.openshift.com.cn10.199.27.30master
node01.openshift.com.cn10.199.27.48compute
node02.openshift.com.cn10.199.27.46infra

检查SELinux(需要开启)

vim /etc/selinux/config
SELINUX=enforcing

注意阿里云,腾讯云不支持开启SELinux,开启后虚拟机可能出现获取不到ip地址,或者不能登陆的情况。解决办法如下:

编辑openshift-ansible/roles/openshift_node/tasks/selinux_container_cgroup.yml 文件新增when以下的部分

- name: Setting sebool container_manage_cgroup
  seboolean:
    name: container_manage_cgroup
    state: yes
    persistent: yes

>   # add the following lines to skip the task if we do not need it  
> when:
>   - ansible_selinux
>   - ansible_selinux.status == 'enabled'

使用到的主要镜像

如果服务器网络环境不是特别好,最好先将需要的镜像pull下来导入到相应的服务器。即使是将所需镜像全部导入了,也需要每台服务器都保证docker pull 能够正常下载镜像。我在安装过程中曾经遇到master 不能正常执行docker pull (配置了代理,但是配置有误)导致安装失败(k8s master节点不启动)。另外导入镜像要在配置 docker 存储之前,否则配置完docker存储后,存储路径变化导致导入的images看不到。(配置docker存储见本文)

运行builder需要的镜像 v3.11
Master

在这里插入图片描述

Compute Node

在这里插入图片描述

Infra Node

在这里插入图片描述

运行builder需要的镜像 v3.10
Master

docker.io/openshift/origin-docker-builder:v3.10.0
在这里插入图片描述

node上的docker images

在这里插入图片描述

系统时间设置
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
关闭系统防火墙 (all server)
$systemctl stop firewalld && systemctl disable firewalld
yum update (根据需要)

有时候内核版本可能不支持docker开启SELinux,启动docker服务时报如下错误
Error starting daemon: SELinux is not supported with the overlay2 graph dri…false
这时候就需要升级内核版本
yum list kernel 查看已安装的内核版本,和当前使用的内核版本以及可升级的内核版本。
所有服务器最好保持内核版本相同。
yum -y update

hostname配置(all)

分别修改如下两个文件和使用hostname命令
/etc/hostname
/etc/hosts
$hostname xxx

配置服务器代理(如果需要使用http代理上网)(all)

  • 这里需要注意的是no_proxy中要包含一些必要的地址,如集群registry的地址,master的地址等等。

在/etc/profile 末尾增加:

export HTTP_PROXY=http://'username:password'@proxy.ctwifi.cn:8080
export HTTPS_PROXY=http://'username:password'@proxy.ctwifi.cn:8080
export NO_PROXY=10.199.27.49,10.199.27.46,10.199.27.48,10.199.27.28,.ctwifi.com,.cluster.local,.svc,localhost,127.0.0.1,172.30.0.1
配置yum使用http代理

安装过程中还需要使用yum安装依赖包,所以要保证yum可用
/etc/yum.conf
proxy=http://proxy.ctwifi.cn:8080
proxy_username=username
proxy_password=password

配置主机间互信(master)

在master上生成密钥

$ssh-keygen -f ~/.ssh/id_rsa -N ''
$for host in master.ctwifi.cn \
    master.ctwifi.cn \
    node01.ctwifi.cn \
    node02.ctwifi.cn; \
    do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
    done

安装Docker(all)

设置docker yum源
vi /etc/yum.repos.d/docker.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg 

安装docker-ce

$yum install -y docker

配置docker 代理和docker日志和信任源

编辑/etc/sysconfig/docker 文件,将如下HTTP_PROXY和NO_PROXY内容加入到此文件(黑色部分)。
- 这里需要注意的是no_proxy中要包含一些必要的地址,如集群registry的地址,master的地址等等。

http_proxy=http://username:password@proxy.ctwifi.cn:8080
https_proxy=http://username:password@proxy.ctwifi.cn:8080
NO_PROXY=10.199.27.30,10.199.27.46,10.199.27.48,ctwifi.com,.cluster.local,.svc,localhost,127.0.0.1,172.30.0.1
OPTIONS='--signature-verification=False,--insecure-registry=docker-registry.default.svc:5000  --selinux-enabled --log-opt max-size=1M --log-opt max-file=3'

配置使用国内docker代理:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
如果启动报错检查文件内容:/etc/docker/daemon.json,应该类似如下:
{“registry-mirrors”: [“http://f1361db2.m.daocloud.io”]}

启动docker 服务

#systemctl daemon-reload && systemctl restart docker

安装Ansible (master)

  1. Install the EPEL repository:

#yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

  1. Disable the EPEL repository globally so that it is not accidentally used during later steps of the installation:

#sed -i -e “s/^enabled=1/enabled=0/” /etc/yum.repos.d/epel.repo

  1. Install the packages for Ansible:

#yum -y --enablerepo=epel install ansible pyOpenSSL python-cryptography python-lxml deltarpm

配置 docker 存储(all)

给系统挂在一个磁盘,不要分区和格式化(不需执行fdisk /dev/sdb)
编辑配置文件: /etc/sysconfig/docker-storage-setup
DEVS=/dev/sdb
VG=docker-vg
执行命令
#rm -f /etc/sysconfig/docker-storage
#docker-storage-setup
命令输入如下截图:
在这里插入图片描述

验证命令:

#cat /etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true "
#lvs
      LV          VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home        centos    -wi-ao----  73.49g
      root        centos    -wi-ao----  50.00g
      swap        centos    -wi-ao----   2.50g
      docker-pool docker-vg twi-a-t--- <50.54g             0.00   0.05

$ yum install atomic
$ atomic trust show
$ atomic trust add --type insecureAcceptAnything 172.30.1.1:5000
$ atomic trust add --sigstoretype atomic \
  --pubkeys pub@example.com \
  172.30.1.1:5000/production

$ atomic trust add --sigstoretype atomic \
  --pubkeys /etc/pki/example.com.pub \
  172.30.1.1:5000/production

$ atomic trust add --sigstoretype web \
  --sigstore https://access.redhat.com/webassets/docker/content/sigstore \
  --pubkeys /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
  registry.access.redhat.com
#atomic trust show

(all)

编辑yum源文件:/etc/yum.repos.d/CentOS-OpenShift-Origin.repo

[centos-openshift-origin]
name=CentOS OpenShift Origin
baseurl=http://mirror.centos.org/centos/7/paas/x86_64/openshift-origin/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS

[centos-openshift-origin-testing]
name=CentOS OpenShift Origin Testing
baseurl=http://buildlogs.centos.org/centos/7/paas/x86_64/openshift-origin/
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/openshift-ansible-CentOS-SIG-PaaS

[centos-openshift-origin-debuginfo]
name=CentOS OpenShift Origin DebugInfo
baseurl=http://debuginfo.centos.org/centos/7/paas/x86_64/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/openshift-ansible-CentOS-SIG-PaaS

[centos-openshift-origin-source]
name=CentOS OpenShift Origin Source
baseurl=http://vault.centos.org/centos/7/paas/Source/openshift-origin/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/openshift-ansible-CentOS-SIG-PaaS

执行安装

这里不手动安装的情况下,安装过程会自动安装,但是安装过程中是后台执行yum,看不到进度也看不到错误,由于跟网速关系比较大,如果网速很慢你可能需要等待很久但是你并不知道发生了什么,所以建议先安装好。

#yum install -y openshift-ansible origin-node-3.1* origin-clients-3.1* conntrack-tools ntp httpd-tools cockpit-ws cockpit-system cockpit-brid wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct deltarpm atomic skopeo nfs-utils glusterfs* java patch ceph-common origin-docker-excluder-3.11** ansible cifs-utils samba-common samba-client atomic-openshift-3.11*

git clone openshift-ansible

# cd ~
# git clone https://github.com/openshift/openshift-ansible
# cd openshift-ansible
# git checkout release-3.10

Ansible Inventory

/etc/ansible/hosts

#Create an OSEv3 group that contains the masters and nodes groups
[OSEv3:children]
masters
nodes
etcd
# Set variables common for all OSEv3 hosts
[OSEv3:vars]
# SSH user, this user should allow ssh based auth without requiring a password
ansible_ssh_user=guest

# If ansible_ssh_user is not root, ansible_become must be set to true
ansible_become=true
openshift_deployment_type=origin
openshift_release=3.11
openshift_portal_net=172.50.0.0/16

# uncomment the following to enable htpasswd authentication; defaults to AllowAllPasswordIdentityProvider
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_default_subdomain=openshift.com.cn
openshift_hosted_registry_routehost=registry.openshift.com.cn
openshift_metrics_install_metrics=true
openshift_metrics_hawkular_hostname=hawkular-metrics.openshift.com.cn
openshift_cluster_monitoring_operator_install=true

openshift_disable_check=memory_availability,docker_image_availability,package_availability,package_version,disk_availability,docker_storage

# host group for masters
[masters]
master.openshift.com.cn

# host group for etcd
[etcd]
master.openshift.com.cn

# host group for nodes, includes region info
[nodes]
master.openshift.com.cn openshift_node_group_name='node-config-master'
node01.openshift.com.cn openshift_node_group_name='node-config-compute'
node02.openshift.com.cn openshift_node_group_name='node-config-infra'

安装前检查

  • yum 是否正常
    如果yum命令报如下

This system is not registered with an entitlement server. You can use subscription-manager to register.

或者直接执行命令:

 sed -i 's/1/0/g' /etc/yum/pluginconf.d/subscription-manager.conf
  • docker pull 是否正常
  • 服务器是否能够联网
  • 系统时间是否同步 date
  • systemctl status NetworkManager 如果服务处于dead状态则启动它systemctl start NetworkManager,不能配置开机启动,否则此服务会与network服务冲突,导致主机网络无效。所以安装后需要关闭此服务。

开始安装

安装过程时间较长,如果出现错误可以使用-vvv参数重新执行安装,查看详细日志。
#cd /root//openshift-ansible
#git checkout release-3.11
(可以先执行检查playbook,如果你是用非root用户执行安装,请先切换到你的用户目录)
#ansible-playbook ~/openshift-ansible/playbooks/prerequisites.yml
#ansible-playbook ~/openshift-ansible/playbooks/deploy_cluster.yml

安装成功之后访问控制台

安装是否成功会有显示:
在这里插入图片描述

在浏览器打开: https://master.ctwifi.cn:8443

安装遇到的问题汇总

问题1
Ansible执行检查时,有一个node报yum问题。在这个node上直接执行yum命令能够正常用,但报如下提示:
This system is not registered with an entitlement server. You can use subscription-manager to register.
解决方法:参照(https://blog.csdn.net/qq_31725371/article/details/82766436)
vim /etc/yum/pluginconf.d/subscription-manager.conf
将修改为0:enabled=0

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值