码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OCP集群初始化配置


    NSX ALB + Harbor + OpenShift 4.8 UPI安装配置实验笔记系列目录

    目录

    1 用户管理

    1.1 新建集群管理员帐户

    1.2 新建普通用户

    1.3 删除用户

    1.3.1 删除kubeadmin用户

    1.3.2 删除普通用户user01

    1.4 获取当前集群中的htpasswd文件

    2 配置Openshift内置镜像库(可选)

    2.1 配置NFS共享

    2.2 配置内部Registry库的存储

    2.2.1 配置静态StorageClass

    2.2.2 为静态StorageClass创建PV

    2.2.3 创建PVC

    2.2.4 指定内部镜像库使用PVC

    3 配置Sample Operator(可选)

    3.1 获取Image Streams列表

    3.2 将列表中的Image同步到本地Registry

    3.3 更新配置并Push Image Stream


    1 用户管理

    1.1 新建集群管理员帐户

    1). 创建一个包含admin用户名,密码指定为Vmware1!的users.htpasswd文件

    1. cd ~
    2. htpasswd -bBc /root/users.htpasswd admin VMware1!

    2). 基于user.htpasswd文件创建openshift的secret和htpasswd_provider:

    oc create secret generic htpass-secret --from-file=htpasswd=/root/users.htpasswd -n openshift-config

    3). 创建OAuth资源对像yaml:

    1. cat << EOF > htpass.yaml
    2. apiVersion: config.openshift.io/v1
    3. kind: OAuth
    4. metadata:
    5. name: cluster
    6. spec:
    7. identityProviders:
    8. - name: htpasswd_provider
    9. mappingMethod: claim
    10. type: HTPasswd
    11. htpasswd:
    12. fileData:
    13. name: htpass-secret
    14. EOF

    4). 将OAuth资源对像yaml应用到集群:

    oc apply -f htpass.yaml

    5). 授予admin用户cluster-admin权限

    oc adm policy add-cluster-role-to-user cluster-admin admin --rolebinding-name=cluster-admin

    6). 使用htpasswd_provider登录console页面:

    在浏览器中输入:https://console-openshift-console.apps.ocp.corp.tanzu ,在页面上选择htpasswd_provider:

    输入用户名admin,密码VMware1!登录:

    1.2 新建普通用户

    1). 在users.htpasswd文件中增加新条目,用户名为 user01,密码指定为Vmware1!

    1. cd ~
    2. htpasswd -b /root/users.htpasswd user01 VMware1!

    2). 更新Openshift中的secret认证库:

    oc set data secret/htpass-secret --from-file htpasswd=/root/users.htpasswd -n openshift-config

    3). 测试user01用户是否可以成功登录集群:

    4). 将OAuth资源对像yaml应用到集群:

    oc apply -f htpass.yaml

    5). 授予admin用户cluster-admin权限

    oc adm policy add-cluster-role-to-user cluster-admin admin --rolebinding-name=cluster-admin

    1.3 删除用户

    1.3.1 删除kubeadmin用户

    在创建了cluter-admin角色的用户后,建议删除默认的kubeadmin用户:

    oc delete secrets kubeadmin -n kube-system

    1.3.2 删除普通用户user01

    1). 将user01从认证文件中删除

    1. cd ~
    2. htpasswd -D /root/users.htpasswd user01

    2). 更新Openshift中的secret认证库:

    oc set data secret/htpass-secret --from-file htpasswd=/root/users.htpasswd -n openshift-config

    3). 删除用户相关资源

    1. oc delete user user01
    2. oc delete identity my_htpasswd_provider:user01

    1.4 获取当前集群中的htpasswd文件

    1). 确认secret的名称

    oc get secret -n openshift-config

    2). 将secret的内容提取至本地文件

    oc extract secret/htpass-secret -n openshift-config –to /root/users.htpasswd-extract

     

    2 配置Openshift内置镜像库(可选)

    2.1 配置NFS共享

    在LAB的trueNAS上新增一块50G的虚拟磁盘,然后进入配置NFS。

    2.2 配置内部Registry库的存储

    2.2.1 配置静态StorageClass

    1. cat << EOF > storageclass.yaml
    2. ---
    3. apiVersion: storage.k8s.io/v1
    4. kind: StorageClass
    5. metadata:
    6. name: standard
    7. provisioner: truenas.corp.tanzu/external-nfs
    8. volumeBindingMode: WaitForFirstConsumer
    9. EOF
    10. oc apply -f storageclass.yaml

     

    2.2.2 为静态StorageClass创建PV

    1. cat << EOF > pv.yaml
    2. ---
    3. apiVersion: v1
    4. kind: PersistentVolume
    5. metadata:
    6. name: registry-pv
    7. spec:
    8. capacity:
    9. storage: 20Gi
    10. accessModes:
    11. - ReadWriteMany
    12. persistentVolumeReclaimPolicy: Retain
    13. storageClassName: standard
    14. nfs:
    15. path: /mnt/OCP
    16. server: 192.168.110.60
    17. readOnly: false
    18. EOF
    19. oc apply -f pv.yaml

     

    2.2.3 创建PVC

    1. oc project openshift-image-registry
    2. cat << EOF > pvc.yaml
    3. ---
    4. apiVersion: v1
    5. kind: PersistentVolumeClaim
    6. metadata:
    7. name: registry-pvc
    8. spec:
    9. storageClassName: standard
    10. accessModes:
    11. - ReadWriteMany
    12. resources:
    13. requests:
    14. storage: 20Gi
    15. EOF
    16. oc apply -f pvc.yaml

     

    2.2.4 指定内部镜像库使用PVC

    1. oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"pvc":{"claim":"registry-pvc"}}}}'
    2. oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState": "Managed"}}'
    3. oc get configs.imageregistry.operator.openshift.io -o json | jq -r '.items[].spec |.managementState,.storage'
    4. oc get pod -n openshift-image-registry

    oc patch configs.imageregistry.operator.openshift.io cluster --type merge -p '{"spec":{defaultRoute":true}}'

     

    3 配置Sample Operator(可选)

    检查Sample Operator状态:

    oc get co openshift-samples -o yaml

    3.1 获取Image Streams列表

    获取Image Streams列表

    for i in `oc get is -n openshift --no-headers | awk '{print $1}'`; do oc get is $i -n openshift -o json | jq .spec.tags[].from.name | grep registry.redhat.io | sed -e 's/"//g' | cut -d"/" -f2-; done | tee imagelist.txt

    3.2 将列表中的Image同步到本地Registry

    将Image Streams列表中的Image同步到本地Registry

    for i in `cat imagelist.txt`; do oc image mirror -a ${LOCAL_SECRET_JSON} registry.redhat.io/$i map.corp.tanzu/openshift/$i;done

    3.3 更新配置并Push Image Stream

    指定本地Registry(会触发同步)

    1. oc patch configs.samples.operator.openshift.io cluster --patch '{"spec":{"sampleRegistry": "map.corp.tanzu/openshift"}}' --type=merge
    2. oc patch configs.samples.operator.openshift.io cluster --patch '{"spec":{"managementState": "Removed"}}' --type merge
    3. oc patch configs.samples.operator.openshift.io cluster --patch '{"spec":{"managementState": "Managed"}}' --type merge

  • 相关阅读:
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    设计模式之建造者模式
    响应式网页设计(Responsive Web Design)的核心原理
    《乔布斯传》英文原著重点词汇笔记(八)【 chapter six 】
    [linux] socket 非阻塞模式使用注意事项
    pugixml使用
    51单片机项目(9)——基于51单片机的电子琴设计
    【C++】内联函数 ④ ( C++ 编译优化 - 没有 inline 关键字修饰的函数也可能被内联 | C++ 编译器内联限制 | 内联失败的几种情况 )
    湖仓一体技术解读|列存+微分区优化,分析性能10倍提升
    C语言基础练习——Day12
  • 原文地址:https://blog.csdn.net/frank0521/article/details/125476463
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号