• 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

  • 相关阅读:
    数据库系统原理与应用教程(068)—— MySQL 练习题:操作题 90-94(十二):DML 语句练习
    linux下shell脚本实现wordpress搭建
    【学习笔记】memcpy_s 函数与坑
    总结:从实模式到保护模式的流程和相关寄存器,相关数据结构之间的联系
    Leetcode 2119.反转两次的数字
    gif动态图片如何做?两个方法教你在线制作gif
    Java实现LeetCode题目
    期货开户前先判定期货公司正规性
    HashMap -- 调研
    Supervisor进程管理
  • 原文地址:https://blog.csdn.net/frank0521/article/details/125476463