4实战案例-开源企业容器云的业务系统运维_第1页
4实战案例-开源企业容器云的业务系统运维_第2页
4实战案例-开源企业容器云的业务系统运维_第3页
4实战案例-开源企业容器云的业务系统运维_第4页
4实战案例-开源企业容器云的业务系统运维_第5页
已阅读5页,还剩30页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章容器云技术7.14实战案例——开源企业容器云的业务系统运维目录2案例目标案例分析案例实施010203301案例目标学习目标掌握OpenShift集群的扩容了解OpenShift集群的节点管理与用户管理了解OpenShift集群的资源调度方式402案例分析学习目标规划节点基础准备502

案例分析1.

规划节点OpenShift集群各节点的规划见表:2.

基础准备OpenShift集群已部署成功。603案例实施学习目标安装配置CockpitOpenShift扩容OpenShift节点管理OpenShift用户及权限管理OpenShift

Project管理OpenShift

Pod管理71.

基础环境配置(1)安装Cockpit在集群所有节点安装Cockpit以及Docker

Kubernetes插件。所有节点配置本地Yum源。03

案例实施#

yuminstall

-y

cockpit

cockpit-docker

cockpit-kubernetes#systemctl

enable

cockpit

&&systemctl

start

cockpit803

案例实施(2)访问Cockpit在浏览器输入https://master:9090/访问Cockpit。用户名和密码为master节点服务器的用户名及密码。92.

OpenShift扩容(1)基础环境配置新增节点node1(3)按步骤配置好基础环境和主机映射。03

案例实施10(2)配置Ansible登录Master节点更改/etc/ansible/hosts。03

案例实施[root@master~]#cat

/etc/ansible/hosts

[all]masternodenode1

#新增此行[OSEv3:children]

mastersnodesetcdnew_nodes

#新增角色1103

案例实施[OSEv3:vars]

ansible_ssh_user=rootopenshift_deployment_type=origin

openshift_release=3.11

openshift_enable_service_catalog=falseopenshift_clock_enabled=trueopenshift_master_identity_providers=[{'name':'htpasswd_auth',

'login':

'true','challenge':

'true',

'kind':'HTPasswdPasswordIdentityProvider'}]openshift_disable_check=disk_availability,docker_storage,memory_availability,

docker_image_availability1203

案例实施[masters]master

[etcd]

master

[nodes]masteropenshift_node_group_name='node-config-all-in-one'

nodeopenshift_node_group_name='node-config-compute'

[new_nodes]

#新增标签node1

openshift_node_group_name='node-config-compute'#新增此行13(3)扩容OpenShift03

案例实施[root@master~]#ansible-playbook/root/openshift-ansible/playbooks/openshift-node/scaleup.yml

[root@master

~]#

ocgetnodesNAMEmasterSTATUS ROLES AGE VERSIONReady compute,infra,master 2h v1.11.0+d4cacc01403

案例实施15(2)查看节点Pod信息03

案例实施16(3)隔离Node将Node设置为SchedulingDisabled。将Node设置为SchedulingDisabled。将Node设置为SchedulingDisabled。03

案例实施[root@master

~]#

oc

adm

cordonnode1#

ocadmmanage-node

<node1><node2>

--schedulable=false#

ocadmmanage-node

<node1><node2>--schedulable17(4)驱逐Node上的Pod清除logging

fluentd

pod。03

案例实施[root@master

~]#

oc

label

node

node1

logging-infra-fluentd-

label

"logging-infra-fluentd"notfound.node/node1

not

labeled18(5)删除Node节点可以看到,node1节点已经被成功移除。03

案例实施194.

OpenShift用户及权限管理(1)用户管理创建用户:03

案例实施[root@master~]#occreateuser

test01

#创建用户test01

user.user.openshift.io/test01created[root@master

~]#

htpasswd

-b

/etc/origin/master/htpasswd

test01

123456

Addingpasswordforusertest01[root@master

~]#occreate

identityhtpasswd_auth:test01[root@master

~]#

oc

create

useridentitymapping

htpasswd_auth:test01

test0120查看用户首先需要以管理员身份登录。删除用户:03

案例实施[root@master

~]#

oc

login-u

system:admin

[root@master

~]#

oc

getusersNAMEadmindev

test01UID FULL

NAME

IDENTITIESc5fa6b9b-ed77-11e9-b465-fa163e5be1aa

adf9e73d-ed79-11e9-b465-fa163e5be1aa

d9cb8e75-ee30-11e9-8b15-fa163e5be1aahtpasswd_auth:admin

htpasswd_auth:dev

htpasswd_auth:test01[root@master~]#ocdeleteusertest01

user.user.openshift.io"test01"

deleted[root@master~]#ocdeleteidentity

htpasswd_auth:test01

identity.user.openshift.io"htpasswd_auth:test01"deleted

[root@master

~]#

htpasswd-D

/etc/origin/master/htpasswd

test01

Deleting

password

forusertest0121(2)组管理为了方便用户管理,例如,授权策略,

或一次向多个用户授予权限,可以将用户加到组中。新建组的语法如下。例如新建hello组:查询组:添加组员:删除组员:03

案例实施#

oc

admgroupsnew<group_name><user1>

<user2>#

oc

adm

groups

newhellotest01

test02#

oc

get

groups#

oc

adm

groupsadd-usershellotest03#

oc

adm

groupsremove-usershellotest0322(3)角色与权限默认情况下,未授权的用户登录系统后,只有创建项目和管理自己项目的权限。OpenShift权限管理是基于角色的(Role-basedAccessControl,

RBAC),每个角色拥有一系列规则(Rule),规则定义了允许的操作。角色可以授予用户或组。角色分为2种类型:ClusterRole和LocalRole,两者的区别在于Cluster

Role定义在集群级别(所有项目),Local

Role限定在项目范围。创建Cluster

Role语法。03

案例实施#oc

create

clusterrole

<name>

--verb=<verb>

--resource=<resource>23例如创建名为podviewonly的Cluster

Role。创建Local

Role语法。例如创建名为podview的Local

Role。查看角色及其关联的规则集。03

案例实施#oc

create

clusterrole

podviewonly

--verb=get

--resource=pod#oc

create

role

<name>

--verb=<verb>

--resource=<resource>-n

<project>#

occreate

role

podview

--verb=get

--resource=pod-nblue#

oc

describe

clusterrole.rbac#

oc

describe

clusterrole.rbac

cluster-admin#

oc

describe

clusterrole.rbac

self-provisioner

#

ocdescriberole.rbac

--all-namespaces24角色可以授予用户或组,Cluster

Role可以绑定在集群或项目级别。若未使用-n指定project,则为当前project。上例中未使用--rolebinding-name指定rolebinding名称,则使用默认名称,首次执行时名称为cluster-admin-0,若继续执行下面命令,名称则为cluster-admin-1:指定rolebinding名称,可以创建或修改rolebinding,向已创建的rolebinding中添加用户。可以一次将角色授予多个用户:03

案例实施#

ocadmpolicyadd-role-to-user

admin

jason-nmy-project#

oc

admpolicy

add-cluster-role-to-user

cluster-admin

admin#

oc

admpolicy

add-cluster-role-to-user

cluster-admin

jason#

oc

adm

policy

add-cluster-role-to-user

cluster-admin

jason

coco

--rolebinding-name=cluster-admin-0255.

OpenShift

Project管理(1)创建新Project可以允许开发人员创建自己的项目。开发人员可以通过Web控制台或者使用oc

new-project命令来创建新的Project。03

案例实施[root@master~]#ocnew-project

test-project26(2)预定义ProjectAPI服务器根据master-config.yaml文件的projectRequestTemplate参数标识的模板自动配置新的项目。导出当前默认的模板。编辑template.yaml文件,对默认的配置进行更新。03

案例实施[root@master

~]#oc

admcreate-bootstrap-project-template

-o

yaml

>template.yaml27模板参数表:03

案例实施28导入更改后的模板。修改master-config.yaml文件的projectRequestTemplate参数,指向新建的模板。03

案例实施[root@master

~]#occreate

-f

template.yaml

-ndefault

template.template.openshift.io/project-request

created[root@master

~]#

cat

/etc/origin/master/jectConfig:projectRequestTemplate:

"default/project-request"...29(3)禁用自定义模板通过设置,也可以阻止通过认证的用户组使用自定义模板创建新项目。用具有cluster-admin权限的用户登录,查看self-provisioners权限的clusterrolebinding使用情况。03

案例实施[root@master

~]#

oc

describe

clusterrolebinding.rbac

self-provisioners

Annotations:

rbac.authorization.kubernetes.io/autoupdate=trueRole:Kind:

ClusterRole

Name:

self-provisioner

Subjects:30在master-config.yaml文件中配置projectRequestMessage参数,当开发人员创建新的项目时,将会用设置的Message提示他该如何去创建项目。03

案例实施[root@master

~]#

cat

/etc/origin/master/jectConfig:ProjectRequestMessage:

"To

request

a

project,

contact

your

system

administrator

at

projectname@."...31(4)对Project设置NodeSelectorNodeSelector与Node的Label配合使用,可以用来控制Pod的调度。修改master-config.yaml文件中的defaultNodeSelector参数来设置集群级别的默认节点选择器,这个配置将会影响所有没有设置NodeSelector标记的Pod。重启Master服务,让配置生效。03

案例实施projectConfig:defaultNodeSelector:

"type=user-node,region=east"[root@master~]#master-restartapi

[root@master

~]#master-restart

controllers326.

OpenShift

Pod管理Deployment/RC:全自动调度Deployment/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论