├── Chapter10 ├── Istio1.4三层微服务限流的实现.pdf ├── Istio1.4中的微服务限流.pdf ├── Istio1.4的安装.pdf ├── Istio1.4的架构.pdf ├── Istio1.4的调优参考.pdf ├── Istio治理三层微服务.pdf ├── Spring Cloud在OpenShift上的实现.pdf ├── bookinfo1.0的部署.pdf ├── bookinfo微服务架构.pdf └── 三层微服务源码分析.pdf ├── Chapter2 ├── Egress IP的配置与删除 ├── OpenShift router支持tcp的实现.pdf ├── ocs外置存储方式.pdf ├── sdn pod启动日志 ├── 可配置优先级列表 ├── 默认静态Predicates └── 默认静态优先级策略 ├── Chapter3 ├── 3Xcontainer-registries ├── Image Registry增加持久化存储.pdf ├── Kibana安装后的配置.pdf ├── OpenShift 4.5.3在Openstack上的UPI离线安装.txt ├── OpenShift3.11安装.pdf ├── OpenShift4离线安装 ├── create_pv.sh ├── dockerfile ├── haproxy.cfg ├── sample-registres.conf └── 自定义Prometheus规则并触发邮件告警.pdf ├── Chapter4 ├── OpenShift API的调用.pdf ├── OpenShift中的Deployment 和DeploymentConfig.pdf ├── README └── 基于Fabric8在OpenShift上发布应用.pdf ├── Chapter5 ├── 1.sh ├── CR of node-tuning-operator ├── OCP3备份脚本.txt ├── OCP3性能优化.pdf ├── Quarkus:超音速亚原子 Java 体验.pdf ├── README ├── macvlan性能优势说明.pdf ├── network performance report │ ├── Network Performance.pdf │ └── slides-104-bmwg-considerations-for-benchmarking-network-performance-in-containerized-infrastructures-00 (1).pdf ├── openshift-logging │ ├── README.md │ ├── fluentd-configmap │ │ ├── fluent.conf-external-es │ │ └── fluent.conf-origin │ └── kafka-fluentd-images │ │ ├── Dockerfile │ │ ├── base.repo │ │ ├── build.sh │ │ ├── kafka-plugin │ │ └── 0.1.3 │ │ │ ├── fluent-plugin-kafka-0.1.3.gem │ │ │ ├── ltsv-0.1.0.gem │ │ │ ├── poseidon-0.0.5.gem │ │ │ ├── poseidon_cluster-0.3.3.gem │ │ │ ├── zk-1.9.6.gem │ │ │ └── zookeeper-1.4.11.gem │ │ ├── ruby-devel-2.0.0.648-35.el7_6.x86_64.rpm │ │ └── run.sh ├── 规避K8S APF问题.pdf └── 通过filetranspile修改ign ├── Chapter6 ├── OpenShift Machine API Operator的架构与运维.txt ├── README ├── bluegreen-deploy-template.yaml ├── bluegreen-pipeline.jenkinsfile └── openshift4-on-aws-cn │ ├── README.md │ ├── bootstrap_node.yaml │ ├── control_plane_nodes.yaml │ ├── elb_dns.yaml │ ├── sg_role_template.yaml │ ├── vpc_template.yaml │ └── worker_nodes.yaml ├── Chapter7 ├── Jenkinsfile ├── OpenShift中Jenkins工作方式的选择.pdf ├── openshift-cicd-template │ ├── Jenkinsfile │ ├── README.md │ ├── myapp-binary-template.yaml │ ├── myapp-pipeline-bc.yaml │ ├── myapp-template-jenkinsfile.yaml │ ├── myapp-template-no-trigger.yaml │ └── myapp-template.yaml └── tekton-cicd │ ├── openshift-client-task.yaml │ ├── petclinic-git-resource.yaml │ ├── petclinic-image-resource.yaml │ ├── petclinic.yaml │ ├── pipeline.yaml │ └── s2i-java-8-task.yaml ├── Chapter8 ├── README └── jenkinsfile ├── Chapter9 ├── GraalVM的限制.pdf ├── README ├── RHAMT安装和使用.pdf ├── Routing.java ├── ephemeral-template.yaml ├── quarkus-lab-validation-analyst-paper.pdf ├── register.json ├── strimzi-connect-s2i └── 如何将Spring Boot应用迁移到Quarkus.pdf ├── IMAGES ├── OCP企业实践v2.jpg └── README └── README.md /Chapter10/Istio1.4三层微服务限流的实现.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio1.4三层微服务限流的实现.pdf -------------------------------------------------------------------------------- /Chapter10/Istio1.4中的微服务限流.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio1.4中的微服务限流.pdf -------------------------------------------------------------------------------- /Chapter10/Istio1.4的安装.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio1.4的安装.pdf -------------------------------------------------------------------------------- /Chapter10/Istio1.4的架构.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio1.4的架构.pdf -------------------------------------------------------------------------------- /Chapter10/Istio1.4的调优参考.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio1.4的调优参考.pdf -------------------------------------------------------------------------------- /Chapter10/Istio治理三层微服务.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Istio治理三层微服务.pdf -------------------------------------------------------------------------------- /Chapter10/Spring Cloud在OpenShift上的实现.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/Spring Cloud在OpenShift上的实现.pdf -------------------------------------------------------------------------------- /Chapter10/bookinfo1.0的部署.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/bookinfo1.0的部署.pdf -------------------------------------------------------------------------------- /Chapter10/bookinfo微服务架构.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/bookinfo微服务架构.pdf -------------------------------------------------------------------------------- /Chapter10/三层微服务源码分析.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter10/三层微服务源码分析.pdf -------------------------------------------------------------------------------- /Chapter2/Egress IP的配置与删除: -------------------------------------------------------------------------------- 1 | 在OCP3时代,我们可以通过:配置Egress Router、Egress IP、出口防火墙三种模式实现pod出口IP的固定。实际上常用的是前两种。Egress Router比Egress IP的方式的好处是,它除了可以设置pod的出口IP,还能设置pod的destination IP。缺点是这种配置比较复杂,而且无法自动实现高可用(需要部署两个Egress Router)​。Egress Router的方式,在OCP4已经不提了,或者说已经不用了。 2 | 因此在OCP4时代,配置pod的Egress固定IP,使用Egress IP即可。它配置肩简单、自带(节点)高可。 3 | 4 | 5 | egress ip在项目上设置后,我们会去设置ocp节点的subnet 。也就是说,哪些个节点可以允许这个项目的的pod出去,如果设置多个节点都能出 ,那项目会自动按照轮询方式选中一个节点, 从这个节点出;如果这个节点坏了,那就切换到其他节点出,节点恢复后 ,流量路径恢复 。 6 | 如果pod不在出口节点 ,那pod 通过ovs走vxlan过去到出口节点,然后通过nat(在一个节点也走nat)的方式换成egress ip出去。 7 | 8 | 9 | https://docs.openshift.com/container-platform/4.1/networking/openshift_sdn/assigning-egress-ips.html 10 | 使用egress IP为项目分配一个固定出口IP 11 | $ oc patch netnamespace project1 --type=merge -p \ 12 | '{"egressIPs": ["192.168.1.100"]}' 13 | 14 | 指定了egress ip后,需要指定这些IP可以从哪个节点出去: 15 | oc patch hostsubnet worker-0 --type=merge -p \ '{"egressIPs": ["192.168.1.100", "192.168.1.101", "192.168.1.102"]}' 16 | 17 | 也可以给节点直接分配Egress IP所在的网段,这样随着Egress IP的增加,也不用频繁修改节点的配置了。 18 | $ oc patch hostsubnet worker-0 --type=merge -p \ 19 | '{"egressCIDRs": ["192.168.1.0/24"]}' 20 | 21 | 22 | 删除namespace的Egress IP 23 | oc patch --type=merge netnamespace project1 -p '{"egressIPs":[]}' 24 | 删除节点的hostsubnet 25 | oc patch --type=merge hostsubnet worker-0 -p '{"egressCIDRs":[]}' 26 | -------------------------------------------------------------------------------- /Chapter2/OpenShift router支持tcp的实现.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter2/OpenShift router支持tcp的实现.pdf -------------------------------------------------------------------------------- /Chapter2/ocs外置存储方式.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocp-msa-devops/Version-2/53148bec25a4434ab43a6beecbbdb0ed99832aba/Chapter2/ocs外置存储方式.pdf -------------------------------------------------------------------------------- /Chapter2/可配置优先级列表: -------------------------------------------------------------------------------- 1 | CONFIGURABLE PRIORITIES 2 | You can configure these priorities in the scheduler policy Configmap, in the openshift-config project, to add labels to affect how the priorities. 3 | 4 | The type of the priority function is identified by the argument that they take. Since these are configurable, multiple priorities of the same type (but different configuration parameters) can be combined as long as their user-defined names are different. 5 | 6 | For information on using these priorities, see Modifying Scheduler Policy. 7 | 8 | ServiceAntiAffinity takes a label and ensures a good spread of the pods belonging to the same service across the group of nodes based on the label values. It gives the same score to all nodes that have the same value for the specified label. It gives a higher score to nodes within a group with the least concentration of pods. 9 | 10 | 11 | { 12 | "kind": "Policy", 13 | "apiVersion": "v1", 14 | 15 | "priorities":[ 16 | { 17 | "name":"", 18 | "weight" : 1 19 | "argument":{ 20 | "serviceAntiAffinity":{ 21 | "label": "