From 27358f3a8a08c8614a153173597412bb7c0f38b1 Mon Sep 17 00:00:00 2001 From: HuaYu <15600557119@163.com> Date: Wed, 27 Sep 2023 22:40:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dns/CoreDNS.md | 208 +++++++++++++++++++++++++++++++ dns/CoreDNS绑定bind.md | 42 +++++++ dns/bind.md | 25 ++++ dns/img/QQ截图20230927214654.png | Bin 0 -> 27943 bytes k8s/port.md | 1 + 5 files changed, 276 insertions(+) create mode 100644 dns/CoreDNS.md create mode 100644 dns/CoreDNS绑定bind.md create mode 100644 dns/bind.md create mode 100644 dns/img/QQ截图20230927214654.png diff --git a/dns/CoreDNS.md b/dns/CoreDNS.md new file mode 100644 index 0000000..3114a71 --- /dev/null +++ b/dns/CoreDNS.md @@ -0,0 +1,208 @@ +## 配置 +```shell +cat > coredns.yaml << "EOF" +apiVersion: v1 +kind: ServiceAccount +metadata: + name: coredns + namespace: kube-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: system:coredns +rules: + - apiGroups: + - "" + resources: + - endpoints + - services + - pods + - namespaces + verbs: + - list + - watch + - apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: system:coredns +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:coredns +subjects: +- kind: ServiceAccount + name: coredns + namespace: kube-system +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: coredns + namespace: kube-system +data: + Corefile: | + .:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + fallthrough in-addr.arpa ip6.arpa + } + prometheus :9153 + forward . /etc/resolv.conf { + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance + } +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: kube-dns + kubernetes.io/name: "CoreDNS" +spec: + # replicas: not specified here: + # 1. Default is 1. + # 2. Will be tuned in real time if DNS horizontal auto-scaling is turned on. + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + selector: + matchLabels: + k8s-app: kube-dns + template: + metadata: + labels: + k8s-app: kube-dns + spec: + priorityClassName: system-cluster-critical + serviceAccountName: coredns + tolerations: + - key: "CriticalAddonsOnly" + operator: "Exists" + nodeSelector: + kubernetes.io/os: linux + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: k8s-app + operator: In + values: ["kube-dns"] + topologyKey: kubernetes.io/hostname + containers: + - name: coredns + image: coredns/coredns:1.8.4 + imagePullPolicy: IfNotPresent + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi + args: [ "-conf", "/etc/coredns/Corefile" ] + volumeMounts: + - name: config-volume + mountPath: /etc/coredns + readOnly: true + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - containerPort: 9153 + name: metrics + protocol: TCP + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - NET_BIND_SERVICE + drop: + - all + readOnlyRootFilesystem: true + livenessProbe: + httpGet: + path: /health + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + readinessProbe: + httpGet: + path: /ready + port: 8181 + scheme: HTTP + dnsPolicy: Default + volumes: + - name: config-volume + configMap: + name: coredns + items: + - key: Corefile + path: Corefile +--- +apiVersion: v1 +kind: Service +metadata: + name: kube-dns + namespace: kube-system + annotations: + prometheus.io/port: "9153" + prometheus.io/scrape: "true" + labels: + k8s-app: kube-dns + kubernetes.io/cluster-service: "true" + kubernetes.io/name: "CoreDNS" +spec: + selector: + k8s-app: kube-dns + clusterIP: 10.96.0.2 + ports: + - name: dns + port: 53 + protocol: UDP + - name: dns-tcp + port: 53 + protocol: TCP + - name: metrics + port: 9153 + protocol: TCP + +EOF +``` +## 启动 +```shell +kubectl apply -f coredns.yaml +``` diff --git a/dns/CoreDNS绑定bind.md b/dns/CoreDNS绑定bind.md new file mode 100644 index 0000000..9d47236 --- /dev/null +++ b/dns/CoreDNS绑定bind.md @@ -0,0 +1,42 @@ +```sh +# 查看所在pod +[root@hy-node3 ~]# kubectl get pod -n kube-system +NAME READY STATUS RESTARTS AGE +calico-kube-controllers-7cc8dd57d9-jhvnj 1/1 Running 4 7d21h +calico-node-lm24q 1/1 Running 9 20d +calico-node-p2pn4 1/1 Running 5 20d +coredns-675db8b7cc-s6z7g 1/1 Running 1 7d21h +snapshot-controller-0 1/1 Running 0 7d6h +# 找到对应service,使用serviceip +[root@hy-node3 ~]# kubectl get svc -n kube-system +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +kube-controller-manager-svc ClusterIP None 10257/TCP 13d +kube-dns ClusterIP 10.96.0.2 53/UDP,53/TCP,9153/TCP 20d +kube-scheduler-svc ClusterIP None 10259/TCP 13d +kubelet ClusterIP None 10250/TCP,10255/TCP,4194/TCP 13d +# 找个ip查看dns是否能够解析 +[root@hy-node3 ~]# kubectl get svc +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +kubernetes ClusterIP 10.96.0.1 443/TCP 21d +nginx-service-nodeport NodePort 10.96.231.91 80:30001/TCP 20d +# 解析测试 +dig -t a www.baidu.com @10.96.0.2 +[root@hy-node3 ~]# cat /etc/resolv.conf +# Generated by NetworkManager +nameserver 192.168.1.120 +nameserver 223.6.6.6 +nameserver 223.5.5.5 +# 编辑coredns配置文件 + kubectl edit configmap coredns -n kube-system +``` +![修改core-dns配置文件](img/QQ截图20230927214654.png) + +```sh +# 查看是否可以滚动升级 +[root@hy-node3 ~]# kubectl get deployment.apps -n kube-system +NAME READY UP-TO-DATE AVAILABLE AGE +calico-kube-controllers 1/1 1 1 20d +coredns 1/1 1 1 20d +[root@hy-node3 ~]# kubectl rollout restart deployment coredns -n kube-system +deployment.apps/coredns restarted +``` \ No newline at end of file diff --git a/dns/bind.md b/dns/bind.md new file mode 100644 index 0000000..818309b --- /dev/null +++ b/dns/bind.md @@ -0,0 +1,25 @@ +```sh +yum -y install bind +vi /etc/named.conf +vi /etc/named.rfc1912.zones +cd /var/named/ +ll +cp -p named.localhost hy.com +cp -p named.localhost hy.com.zone +ll +rm hy.com +ll +vivi +vi hy.com.zone +systemctl enbled named +systemctl enable named +systemctl restart named +systemctl start named +systemctl status named.service +vi hy.com.zone +vi /etc/named.rfc1912.zones + +vi hy.com.zone +systemctl start named + +``` \ No newline at end of file diff --git a/dns/img/QQ截图20230927214654.png b/dns/img/QQ截图20230927214654.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa360d4599162b65f525702fc5417b9d2b2d93c GIT binary patch literal 27943 zcmaI8cUV(d_Xf($SjNg&ks>$(B2APcN{eNrBM<^ejVMSj(rcoks8s1vBfS@?(h?N` z0RbU|2mvBQLc(2>@n`GxlVp7Nvn z!k?{J^_`B?uYFqZBfLxI+?}VtH5tCEv^XEbdo1dgcs7?{*Ou3vZFQavCqg7IGY9$^*Bzj z7%q+3wXB9%3xHEVp#Z=Eq0qylqiK~@RZ7IgMUTaL8S}REzxgBH168N~d|yOS*xCND zhnh07ml!8h5?|Gu(dsa!?q@jGgKg^~>07leJ|9!S^&O4qQ=B;(y=r>i?Z@eIBIu}9 z&46pEMpD50rIG7R{GFeD_ogSge0gIuv5am+oGn3$H_kd)3l*dHKx8LN!P%WBQl4f( zo*{T=nJ(jU7@Y-$_hFx?_@2*)=M7nHe`5;6jy}F%{rG~Kzt?xp>vkr_fhxfg@y);E z*9sKP2GC9%XG)lcM$IT-yKXX-|K=#NQ@z-7WYkZ#t+@oL_4sugCO@uo>`h@pCEg8d zzBH?Rnd3I=I6i=>0HIuCL8gE`8Be8DEwmEMD#uVlB_e?tg$;U7#uH#> z!%&ex8Yis0n&Xo`@6+0B`<>iapAhTWN6nxyp;Xp#HIU$;su>tfIrrX2=+lRID*Yt) z=y`a)o?j%B5v}x8I3tyJ0N{`TPB-xeXcf<)1Fp;JA$~U2*2U^c5m~ycp?^(`nC5xs zMD;#?JQRD&!#sAZ^xJaJthB(1*z^X*Etq8jlh1B6-`dpA#?`Xar|a{pctjGk7^;$7 zf0dO+@Hu(xQRkc1p_IrcPmZf$2+c9oj(n@K$$2%Jki!#R8A4iP_E$@pJ2ARpHu}?^ zJ9b{4jZ?3S;*{JZnhWU7^Fh?p7T^|)l@lpc!^qWX@4J85))MZbe&`jAT*KjLo{_6` zEF9^PEBLCZ$UW@Rg`?xJ@vkRpZuzh~YpkK&2)zAhzu`E5gTYLM;NC$rj*SQ)Kj&OE1Vg^n=!u3QYaeSuH0QipGB*@G{Vw#Ta-5 zT1g%I-S1oxoPVJVBiwT~+a=hl%N2tOUakFB-3p3c9G;^z#O2)SPjHUyZ3}k&{vGPg z8lAQ}OK*F#_GX8`rw`;lDn6Fw=)JZ~P3%#2f|~-+I$@6Y1l@9qnovqf8tFjcIZ^$| z_m}Ki3sk{!$WiA`1oj=~^;%Zw2+?(7R(XQc2m-aNu2rgX6lW~P295*E*3i*d5Q7EE z$l`Eh10@l7b{I-r$A|3!V}oKm8xG7-z9A#<0UKL=5ES)1-|u-r0B+%}zfIOhBQ?T6 z(CYXJ;8-Q`yKh=>WX_|^LG7DsYDS-(i^p|U!%WYOwd|dUFRdl-Zj2j{wQ95U6Cxyf z8&Y*|dej!)!|buztGHlYtT6#kr`3MoOWi#$(#w8V@cTr0q^ATs(Ra<2hA3rUrvtyS z$b^dDi;l*POY#p^KQ&1+2VV%C)JS(drw53I!su;4mNiHR8xTPRmB2<;5i`u5z%^GC zQ2VUVKo$Rvj2EclEN2*x;N!}%fbkk~V>>(x{iQpGO6iTdQZ`hUiYx~5=Ps9(0&w4F zug~Vdy~L7wv+_UUBj862mFt3K|J18AG5uUztj2bwI-M*Ua}$)s^b$&#xm1hh{-*Mg z{I(A?g-*UyzGT4xGuqNZK0F~7{{;z;%>}R@P-IR<3Qn9qd|$m`x{CUN&OFJ6QM`{H z8bs7UmDpbbRZTBv{LRTjA;F=5V|4}|r4);Vi-xSh^lHk8^s_MNr=KFg4OqQTm*TNR`3<1irmABM~<;S-y)>iM! zpxIpm#9%OVM;)6nIyf8P*f57Tn1*jeKbnR72?j)*ypuZ_k*c-yy=VD0hG>T9d za#FOhx&sDR73ZWk=iRqZuuNt5gcJvi?tx?u3qET=xTC9P|B~xt|&^2+DG1SLWUM z{JCR%#o@Z2hs3NCI6FA_!%<4d%vIx?^w(=Tt7*)Du(dg+C!30@1T-dh$wzk|H4^bW z)`vMJlff&M{=WC4yO*^IVNP1BHm-nO`<-cX*B!`TT|3k35BsixGM>7Kz-Mvw1>J$N zo+r8@@K9-St}ZkHcvRL3Ih`EmJ40NUX356Pbfr?61{}6dC4x<7=P}!J9>tvAy&<7X zt%e+O6@Vg318n&6&(2L3I(xCXr6pwX&4Z*|6zyCIs;VT#wk=iVDK7qbk$H=0L2I~@ z-@&PZuDC{0hb?N*X)yB~)Ovhlz^?_(DAd4sXNqX@gFh7deggUy9`13XGn2o2ICzMs zFZKk#TytrktBrlD7boJ0D|-WLe-olqVsLHGM)y`3^1+il)t60ZK_)k@?|t-8$`7m? zcyBV9>0u(;^$fbJy{~XUW8NW&JISfED#>2?*-2&6WFTvGswWufl=?*t+14dOb0&XfC%n7RiCS6) zR@Ow4KMe3y=fr3rx;X4C%pn*@Asb=S^`6WsY*BlU2W>1i+v0nEg0tn|(#3R6m%1$< zu~q7>k+BBC95#Aq`g@5>f0M?i)|tj00!jMh&Vds|u+@hE2t_nQd=_{q217mwQ=yT` z<*{qa2&VzcGV9>RpbhaCO6=$BEYQv?!z!sJ!LJ)VYzv)yJ8gkGBam~JjX&=7Rd}EZ zypff8Hkcn@2)LqhY}aH}m1Fhd8kw}JKZ-_i5J4*o9r+=V+$|VZv00QCU5!!X)V9t6 zvg*bhUv4(!Cj^z|?rL6YFS>mF9jWW&lbxs3O$vkTP1M?)k(M*9ON>aBhev%oMStt5 zz^1D)AyAlrM#H&*G0tnka+B-#ntp5MnT^4C{M}pf6J|=W#1d>p&-qf9h=CT<>zef? z*{(&d?REAoaXvULs<6i%gW2*pngUx7uw4ya%#NqNIsUd-LbY+~g8d|X`rvzyba%X^ z6G}q)94~-vkYL?E#(VGO0=_|n4%ER`ktTmakABm?>stgra*}4SI#&Ok@LbdIO$o;> zSY;@;>}Or+R~aiGyVf`o*7Oz{BzecmUx;G4XJ43CwV%j{4fIHp>1@FG+iUEOr5~%g zu3~FKvFR=sGv;r`DNvZ&k?IcYdPJQ2fae%f2LUL}f?NUnl<&*Q!yk|+lm=$h9G(M! zr8?q(HO%ZjovZ#u2zfr+>8aQ8 zUi0Y-Kj1m3#pbe093g5q7I0 z+luS~V+@(09w9I^#*njCbs4Z=Nz^JLs;D$J+mD7ZT-g^^0em47@zg469DM06dr1p% z&W)M|W42dOv26Gd3Mk_K(}EnVGD*=Q0d8X)D!I`OZm$aQ3x0!}Te zonDsIn~lwRx6(Q*H!PP`*m@zG#*&*`6PahJR%US_LX{_=8~!u!9(?i>Iyc%5eovq- zpPtZYkCpNFhH z4xaF2HJ8@D8a+K{%^C#ng8A+ie}h3k{{tb64`ox=${s$tHaDf2Xey=cqdaj?(f}ww zp0$r)-wI2exrr^kKp@`t@)I(NE@(oUA@DO;I+~N#rdcp7g3S8zb-8JZVZikg%fJwc z&LaA-pAK+}Q7sHjR1_3mgkmtQ!YHE%+2}LOJPyS!!>N{he9XcW`I!@dcN^tM=^zj~ zj2n9Bb1Q9TUl9AK<|#$>i_6Z%FKf>zG(4Ftn$%@aWG=GgdKrcZ)a8>F@HJwUC)7NA z6qH`=Ype7g(P(hNLGWTSJc$ZdL&pmv5q zDR7$UI6z~tsdI?=eQcuwMAAy_C>=QAHu|-O2HZgDWQdMIhN$uNY6{zc^*LRMi&wM# z`zrFusMUVIPJEo7Jb)~?#Cc4_dDbflVeB)qEk$&tcARvlE&Kl<<7H+g2-I3n&nbEs z0tMgLcPo#Tcyc8(EGxxDYR4Z+%qjRPcK?ChVN}oT*hY)~1R~^^qLh>&AaL0-F*l{A z8GeK#5oS!;FKIPl|M3j~p&Y>UV-?n@)$voS)2F6Uu@xgX9VRnB%+4>}^7v>^Ld-E5 z_2hT)xgZq%f(2ys;lA3=l~qc!%FEQS+p3pQuJfoBPPf|t9*Sq1hgEn|8`=26Y!8oR z8VHThs+}N-zE1KDvzNu|L~lUcJ9*Um>k!whXP`F+1^81~4YXCXH9nhpU8~;2L|J0z z&hXxetWvHONtj`dHkt!0VI8h%W0E)bE7T~mCI;X=th?!I6ORF7b+^WELCRBb=|+@(^`|46OA&yPRcs1bVgq)AXl8hu(T+izLDvWoLL9 zgA>Ea4G8wR>wF^YKul?Ke?qfr{ppC+?>%c{e2H)6X#=Zkd{LTeCu6a^)3b3zS^F3{ zF2K~mVw;y+)|iv4LT7A5LdsB4%Pp0hLIiNE>qTH_%DB^2R-Uze7#Dfre<zYPQI{W0MXG0jos7DQQR!4Ixt0+$%P>tRU$*R&z$;Vlz@$Zs74! zH~m^4?Cf|s&_}6nWh>Rs(V+>B9L`O@wQg*Hnt>%nP54O*%(Bh^)$UIr^Yw7ptlK#; zpRk6VY{RxWJUySBS`Ki2`32UyDqsM(8|6Y^kO)90H&}67qwizOm9=erpBT86fai^(&2#A*yono?lbj8{l`-d4f`LkOA+*1yKB54YdBWVH#$3F|7 zyq~FhD0^R{^5v0=N>mXRn=!u$dwF=?hJVr#N7udAT9ZLCq8;yLmwwMAw&xH6udbO{ zFhXq^x?1mY!bcT005QJ^`C`;3xhCW!cvE29RR}xiOQor}kN66x*Z0pPX}hbbZa~_C z-ZMAy@@SV6?C~U&Um6Pw>3{JkW54Ue@|Ir_I1i7f?*D>UcfkZ_k4sMke|}|DiTI56 zry!r(hi>{^E@>tHyhJ-mgqPx-@-i*#q;!*u8Xi%vmsA)!PAQrRkzvrBqM;#-MeV{xgt3LU8<7&TeONS;_7~lL?z#t3^h<69G#e~0& z5%WfEhGr+0yXg9^Q_MOv6za?hFj(*pCHWnL$(VYjl$X?CwtTMdQf{$#TDi6(r3%kv+9UV``t~-Azc|5RtuOeiFavRxo;21>BnRpt?C7;ZY z-i-5oDKq{v#TB}B{(8vVhf~GQ1LFw?d&|&Ex&)n|VSj4ANJCqzS_!)tR-srTlA`?R zQKpZyUs$gnPLQW%l(780!Su zPLtkih4~+@rFJ!Hd{`h!(BT3&C`e~ygkGiiXIzmY+UC2nac4E~20$kaqfXHEAfQ&u z79X7)C3a#d981AS#oRkcdE06WMrU3l6(QM8q^D^}$W3{Ykvs+wZ z?8(x7Tv>187&N*s6)U2dmYqaR?MgMPlj8y;jpUiw;V93-jQeojO8N3Q1;+^rsfDe` zM$Ku|y`v_Il_0CiuD-f9cYpXx5ax3=@N$J>=~v(CtY*iSV7HJtP`S&<*%vcw{8Hb` zyQ9PH0E|^RYsaqzhtNDSbQ_5C|3vH;4ZSa{q1>70WvyJ)%Op5Gt4M1q_B+-rYU+sR z^>FO@gNj`|`?;@lDW6t5Vt5QMuntWM0>9npeik8{)zg{~Ikily^wuTDdg4h%^T7U^ z21G6r@8Wu?wELoZy+#t`PnFV7_mpJT>9aL{i)J8<4uAAv_2AjpfI3F{a#LS=x~T-G z{D3N7Y2(4soL?*a$#hSKG|$uhEK5uN+CTh5uOK~V>Qxn|uj^Zn^Qtn%H<%O}#`qEb zrnNXQ;!QF=J_a+RLjviA>X4pNNeR*Ko{UKtWM%L2L6@~TS+L;TwUv@fK)w)FB|jgq z(fK!-moX{UMWwHdje}GK&RUujHyE5}d3~c4%)wCw!9i-6dv!=K_Hrs_3{Bk<+cS41 zb{09PIX=g(MSP$oKKcqfg-?TC8wZZOp}erq+nQ+CERC+285_~xAg0Fa?6J9mEOP}G z)I58b1DnPztR6VVb?p;bo333_HeKxV@f)JqX33=YBP2%>aI#)RLhd_Ob1WaGW?)BA z%Pu9&)jfXbQDjc&oQ2=1n)OUvHTzIq3Y;Nh3tdmS`?0I$;67_=O;$2ZZSk7ixOLNh z^YG|2SerPvA`LSM)w)s(b~|FsHwmVA&8a+#1g80IVLmMBd?{UWj0n?5N%c!QiGbq@U;Gg>%Y25-f&r$-VGPlAXKu0NA9;h;=hLa zax8)Co__tbR~A42w(tZGz6}3yYU?47Ew853mKb?X8E+6PQ=+glz4EnMTe`sWAa6Om z7MO$g8%+#5*A}9GlyK?s6+11v?Vev>+6$K0XO|W~tX%u)+;8N?y8mBqTXCf+Go|JV zV(mt&0A}G>J2x{#y}3&YYo&VN@b+S!*4u!)%ZSr?CA_mX$sW?pttzIqA-VoDV38T} zrGK{D35|`Q@eE{=!tWEdj3rR!#}l-fC!Wl2N!u-Kvnn(E>E24$Vzdj&V9>@XK;YdK5^P0goli!=>v2D}2l6`Fpex15E)wJyXs}vp%{beV z59{5BU`2y}-)a;1gsXntLRCd87eZZyZ-`yDp7Zn?GjRnHH}qA ziWS}f@86o(-hVYefqU4{RApASbD8pdx9!Krw-&WUvBCX6Qo87OZh5!FW~OEy{bQ?# z*3?g(0*5u}1HWJIK#!Iu6o9V^&>D5fFXj8NN|s&L{^xx>(`!Ovqo<78XZNn>DK~zt zmN&v$ANwF0V?Ej+$RXE_TWZhW@|JMO^TIJGTFA;>54rL4-IHbc zk0OFUNv73&r=iN(XCrJ+TsP^vXEKq-emQd2Ezj7nvi@a(1s^^Tpp~)>WAW(|T5_Rm zu|tZZS_6|ZQ^y+c3+Fx@CDn##0F$qByxUMZy<5xS(R0s&)ZEkq1J@X#8lezHBh!hd zlDWO5*(-jBlFbFy6Jb8fqd}!zeu8>hL#yV0?Ck7ruXDfG|13gMUH`gc6PJ%Elb-+* zX83oTC~^Jw z@=1dUzPN8v#fs?6Aj_l+Xpr%pN=$HCB5mvB9uR8%z}?)0($ZSDG_-cP!8 zsdreda_NStwU2pXKF^Ps6y3OcZ@$Gzsx^(4$Ch&keg4V~{T1MapNuXz8r+Lsp21iN zmS@ye0|i~mE!?0-f_)@Stg=UzG4>%)%zWzaGW)q!7q`nwr?zBsr6#}%Tjxe~G3D?4 z6!MO=uy4XGMbhH@%}n3C58Yjvk)1{)=l&0$y8i?ueYHya&C+myO7?tm=J-8>zS1KN zN1eVj8MP(Le+>j4GF_Dig4c+QiiU{1bT_mK@w(2FS9yCcZ`mH6Y6+_|$udnhO|RzV zF8S6a%(y@@COVDI38WaT3bIy}S>Ao8eOle;OIEW# z@R8t&1gnk&)%j9Y@A^I$y}_hlO|Dyt^z^!+yL~qo22ymy4O6qO+;GevJR7R0*UZ14 zuYteR#|o?P1+7MU`{q-YWtdM&Ia8*VVHQvwkr?BFej%qde+c)uRBAtwfgINEWO~93#uDgr`_h6N6X)S!%@D}p=@Xcfd z_r-(8NBP@^k>_w5POl86H?wAIxn6v*@q7E*f(Mswb{Vd9SS-J~^^`|wUmnIe*kqmmY=9?6VvS|&$gRGl> zhZ?_77`^w+a&CU0^RMLElr7}V^VW9#Zd+?Td6lE9Q59Msdu-qGOp$mAJSP;AUFGzu zv>BZr&$W5Ms0;g{`!UZN_lWq(*@SJcM6E0UXIcx9+A$ANV+`uyP0DP*^|Uunu%!cT z@0ZRl?ZQXKKYt&DyBP0J@(AzIY@xBI~Z@TzI`_ysN=j1#0}Xw>uP%Q z$IFxjOFO#^F1PZ0J|*R;#$=_=&4OYPafGIgpH}59_ig374R6qw(%~vn>{PL;fb(#L zPWWj2KN}Ro&0EKlmAT3&!|(j9arhv<(q97CG;)thHEz86>h>2tY3c3FEDT7H@hAXB zi>a+uuz^Ac+xiup});@tc^mWv?o(T2e*Bk(1#2|DT`TC{_w~pM(ff{%38;PPbQd5pRkuf zy`ITkICGV~*%wBNWSYe4w`O{)aLEbWU1vir6omy>E)=ytrk#A~9dUGAO-EdP$x3RL zxRfooZ3rIZ`BdkF6`xo)o~@T=P>K;z$eTACPx{>LQS1{p!T!5JzJp1S8eiLF6+XWp z^wn#~qF`5lwHK1OFzc4$S<8Jod6Z$#h6xkTVMy&LB)~)JlF3L9(+)>b(X}x>P{Pf4 zm`J*SdYg5KG*oq5f$Qb%k%i*g#WobhQkj@J<8Nwel^jUQjo1~D_dSt8*(;S@=NB(m zW_|7{&PGGugbx!?NL@~T!sMoYD6Fh20vDI`Mj%U&IO0Xc@#(*?WRWd7e08||BVD)5 zVxu&n?S4WReb|N9;iw^>=E@EM{l@2w%c=JZ2F~1*6j*1}3=n07@7rDTT{gLP7 zf`}71C*a;{+`zvY;Wd0vk)2i48w+u7t|?r8mzH9U3qDKcJzzReLGitBmu4e<_JnnT zKJp(bH(bz*>%%FKJbO+^ygA;{o%cxBFx{X9`1w+ctKoJaH-7%D#lH2q^d(&vR#x6~ zrPNPLAm+VRZ9cB7>%RKB*1ODWI@oA+yvm6(V^Y+N*`3@B)t?#WfJ?@GJuV}5r9&rE z9cO)Z9hRpQ;DAjt3Y-@$-5Q+-%>2e?(eVSw`~LogL?W>%W^r*bTj^~6u^3;e5_qvQ zXRGPkC@(l1(G(LN^B*X!_v(M5w8@hyJoZy1*^bkj`8{seYIrmxcvqowca2Qi(}UXx z`nFy)WK5y=WcP&#fnAM5THSQslZUov`aa3k@uUf2smmv%GDH-LZMXL>6mOg>{>$^o zhRdyY*8B)LR}ON+nmVRz8}grz+6ME7ZhbB(ZdEk4@6i}2fybMxOT`}6pQs$qQ0xAC zYl5F=+Ln~KzBn&lQ$3`e8Xa0cFB^moP2@(2Nzp=Or?<5CLE~JqMDmD2sZC67KDt-} zYnympUN(6z*sFGKB|yaY&W>jGOG*8$VIPEt%%Jf>rL(Dh=Cfs{{bfo)4wen+{pdN8 zeoK)@>rZf9Ay}L}98f6RXaRY5ep-??pYc6+t2*=S;<;4Lmkp`;M$;5%8i}+wyrr@3)s>WYNv3D_XO|p7dYEx}zR5^$J%3qSh|VYb zZ7V*Rn~Ev~*L{okmfj1Rzxb#9j<7!2r{AC@@ZietANkGWM)X}im8X4c^kuxulH_eX zaS@`^R=n*z-x8O)S#&ZA5%yn{q^nWJ^UfnDiK~B`_*a!B`rCfX+mgfEoN+wf(Sz{B z5YBgbPB+r7N&c7yG z>@+tV{PlbA&wrcmq1x5$)Uw7_qbnD=RRC{$sU`hLCK$E4@RU+kg<`jHn2q=!0lYH^ zqIm(lEaR);iiv0_Lu)QdgcHRv0UDWprR(|EYBs`sl#_~p7eG0y3SoylSz1&$pvuN5 z<4JAiTXVc6{sVT_bA+=0L477uMOenUvnK2{Ian@~^Fx)*0)0B;p@BApuZFPw;0gPg zE9fU?W~rO`!y*K67Rm_>r-4%01kfOegRDX^&Yb%b$5O}&TYjqZej5qhR?vqxCJ#_W zG+23@#d|8=+@brh`1z;-j+@=yX3)Hd=RHlnu*OSZCsW2X7Cx-@1`9N72(0*oG3G8I zp+L&xZ3%x77ENxT{7>p>p_&aJ^lZqkSQKPqsEB!UC@cpm06K_c<}u%qSIptJng5!E zlL@-G)kW02Ygid7>=xi8LV_29;xzf)Gj=lkEE7E{LOUwAC96Q{ zOOA*1|9_5SFkKfKTF5=7*{+hs5r(f&Z)&&Iw#&_buU#O^W;SAn%%Srlx}aDnobCP! z)yBA2L;@JrEEE=6l!aVu0TmZit@MHwsWw02@blzK{(^1IX`uh#`nhHd84D%U2~dU*X~e|21t@2XzW6 zb_!SrFA-*ut?Pkd;-F@V?vpE7X-gZHj(J|-SKwGy9a_mj67<#!YzEItX=%=0lLa+x zUx2^~u5WsfD$Qjx?W58X4{=O>#6q&lyjiQ`HJCC}hZE90bbjbzF8#+1lkQdFlEO^S zyxuzUw}M(=XOT6*odTsA~#? zLFh0VPkK_sson^$GScDS+BQBum0>uEf&=UYK}Sc&W+XBj_k-)+EyCZwKJP$pR&ky+g=)lYW2(U4HefE- zewI%WOV#-$F+TN|jJ9RidU9R4Vl)2R;Cgb+!S<@TIC$u{m;Q!%gHB6c4kuM!JzEcu z>J#}Fxuwm;8T{ zuPrs@v@Ox83CedxFB%)DOsN8=|P2wS6n-IJiJ z)uSS-!;Yei=`kXAm6j6w3xa$@EX)c-kCjTeJjE$R>^x@J)qSj&)MIRw>>So^ynKOh zG(}ZvN6h`8^{6bPgRkCm|8Vg)!U;L%PzlwyOQ3v;Exo z1x2TC5^SFw*c?R9fBW+LKh7VDU*dB7!ZqiSmh2q+Z}&9+*x9@%ik)#PG`K9zr=AN+ z9;&2fuQ{`6Mw%2~Fg$0RKE1SZhAL;t`}{QC^$Dfl)6aX-q*0*QX3|$S|NP{VqFs`C z!G&i>^p`IyUGK;gM+vG^BOaSmMsSPU-v%ZX1t8XcDFU zvV1Hm47C2)9=YyBiLds3?|T^SY;Lp|9pl_x>0a|ae(Tcpu3tL$z9hlYY{MQt9O8p% zMl2_&2GC&_%Jzo3;cfkeY;9t?8%nwkrx9-TrD6L@bL{X|wwonzTn(Vb<_}#BDplrY zlqpC3+MY^|Z`?o$a$LIj#QuvG%V&FLAj3um6WuETc1Px+K|UL0nE|dt)-1vs2&r-$ zJ`OWVLWj8lE*d)Y5tKafNogwaOTYktZZjq!#tYCPC4h;llN2gn5N{`)~XE= zt#E+D8ddJ^@AnN0Q*RvPrgCd{?cCDK2NO-}6^^_9`}%FW>Hn9{!O0tNNmKT=QoSwX zS~b@qspNjlLhNvDx6Ibe53r<(oIe6zucgfUb=QT=XNNwUyyW}O*1S9+?f(I={ufip zFM0l6VwB+b+OvGH*<^u0`+ALaTehC}ws~sRUB_2Zj#<5uJLVP7`BDc{;XeZZ z?f4)cta-2hMTC33+K|rH*n0F<@ZEpZY;t|#TmjdI1~+`V-nAtao=LI)_S@ULSZAk6k0sHHY3bW~ z(`qS}+;Fe^WK#_(J9sm#JLO8u8Bdy_DGJ0)YYo(YPrO+u9#R>4zb(I-&5d^^6SJ(w z>DrY_*jEda(;-_c<7v4HmP~vUDdBGOtye0wx5xb4jDfC9qqLU0=~B?l^05Q^wG3Dn z-0ibc@;NtdU6eF8ok)v*F{83>d)T^GQpfMnh;ubZijC5{Pg%^C3S6hEZ*OTqNT)#m z_XFqD8R%5bO4@%VD#K31e5;>#2||zOs>zZA!hLUQ(1s2Bg4%6$?;RRPeoAzCtsn>{3G&%;}#v!*s zTp5OQsiN!k%hY3{PydG}t$;$#2{hEnzg84xLn^qb$IHflpZMWzb9mc1o%*8?h1+My zw!0eZs;(d4XxU&La_@lH&gQIp(fWG+71c&~BWfrZ&|&!2A|o_SZHivq_NrF_wyYh` zi$gjE>Xi9oN)VF(#i4Z~6AZYhcyyy3B#Z|6Q)Ax0&v^G!haEc=P2}G0YmB-q*c#1< zbX;;fzNiNM-#7Nj3OD*&)Ujfy5VvplgPC8hwt%m1Xg!H*_^a@kd+rNZt{@+fxVed& zSNBF7Nbdf(m%3=l%C#VB>qqgeGkh@nekA~R-kr*=0=SpLtSrykMfLxOs2!u3*G-^O z2|01(Ai8HyjlMg}c#OXnQ|wq3D_XLKQAt?#`Jj*9%leobx2bDC&%A)Vk0Lbo^vo{z zaE55roXS`aWcZ4E0X0K}e#&{b0E5iH&O3f+lETFz6)ph(XR5SzVH@hA`ECaA3~Yb96Kn`>XEbt=nNc=>Pkm^h8NZw0ZrI_kxa*qW`mMS z{Ep{ce2XZ0Acr)bu*&_)AQP`h5f4R@{O}@a1D;C^i#E94tf{E*JB5>Ngb>;Ki~Nhe zD_gWutASXueB@!>zB{ipk;thPt(~TZ%;sm#3TmX4uFIVgsEg5_k!` zR>bCk%Yz7RsVq4nLa!GKMd>8O4tTGB1eFhP%P-DDK{=rUgoasV8=wjZtzvUNhQbmD z271^Tm-+1~toqLQUDO*Bf&>3({P^&vFYA80%cgR@-KPnb3{PCnZpK_8EnRet-7#++ z9Jy@ti?L8?qPUbmUP|%;Kq%v`VE9w_+`hGA4x5-?umPo;&Wwn>tXFt>6khjTd#p08 z0X{ee%fFs`@&RMpk{-i2qpXW3Y2`9>1V2KqVX?Qi-=VLGjy+t6VoesQseZ zQp7qYGkYN}WAc__l9k_64C?uikjrc%|8L3HMri0^#AF~QkeyrUbFM7e8-AbFfnnF~ zOC#V244ry_Tl?|_zFiezDQf9c+R*rnekwiN-IOdL1pUtGb>U;9zOx7x{hmW~tWHD& zR2x_|7uaE%6?&`wR}Ar$YR7CTZ*3O1ejW4uQ~KW&1I!~AUf1YbHLg*vHIM!JC8D|v zd&1vgzD?$@V>HKm_k-4pCR!|)&p5C|JlhE`$1^ALk(XgeHpI%9MbM}hZvH%y*p687 zaqeJAvq0{lIAOR;%J`(VXuu7bvRKbCkZTnppR>GdLbi9@SL{PjIGp z;<|XvMw;oS`Rom;GML z^u%vDEN;1tWwigVxbs1@wv^p&{j@VCNhkY}EMO)J@3i-$hp~(K5~a8;3U;$7q&J&u ztbRG=2ktK*Du0^zx5k3aO|MH`;-)Y*qf>45fTzT{53YxwkW@D7^4Q`5QnJvj0uShTpHPDTv-ksd&C(-}lN{|4DjjuWG1Kc2ZZ0aJnJiuW_I+YilWZ|J4{iZ^CCRXnGqrG1{6C@*$5@%H`>0^Y<;F< zH=_^6K7&9cvy^@0-&;1O8_c_<)LrImOM6xeJf|I0(QJvfJ8pcqluO}{E5zRWQ}NBp z8J%;`$szWD#}Rkhi^C=*e-$gpF00p%UFYvWCsE|8P(h&<_O5U?gZsU#Vi)Q}-aRJB zHPm?w3Ww3*>@zmdoyUCQblw>xUX=S)0nfv8o4%gqD8D^Ak13UpPNP4bx>DJ<9mh^(ObHHue>OOd-0~ zKty3rLH=^8Z)gaJV`B{^PKU%2l}mt{zyn)QgQtZn87D3TjxAZQ0uXnd|DZguPpTpv zBVDpaAY~`;aSP$EV|-lIvan*D+g?g(2i=6sNp=S^I|x>`a5!ynH?bc&L?O+u%C6@# zE9>no>yKi&pFsALZ;m1GSoCtO2Ve}`z+zY47>pKp0q^?WpDn-+{laNHKh?M_&;Jw$ z$Ov|SEtx#g^U@7l%jX#*k;Ia{p+|+ZB(mMAzw1vQ8s?hcLXTk&tnme>AGu0x1sbu^ z#aC z4G!jpm;R;TIqSYfZS{;#+fjeu#4QtNE0`X&*?#@c3TXV}DWr0GYpe%tcK@BG-lElb z);Vc@hVnzm*=`lzQ(NtMLb&9xG#MOYceURs-*!N}X**i7EeLpe@M}kH|IE?f{RH@$ znLm0#zH0w=yaJXKRdCd9Z?F`e6WewIDusj;VuwqLkVG%Mn+;CZywb z{GR)>MJ4gKLnmG)d&%$el4Ueu&Y)3$`!!+|h1- zP$&KQ(}{|`0=urNSSC}1wEry0nfv};yiZmoz}LQ8yc;go>)*7%47FV`n^T)*_}pa7 zTni(Uxisr-@tj{mliu?yjJegFrkkN#`(x2O7t%wh8w**)Y_42QGH0kTnEEC0SJZ{y zgZov;UY%ex7m}oytNQ75*rMNNYqDna`&Mm|pB zd8e_ot|R7bYA<2HF4Mj7v|j4sTr8P?{~fR1vy8cNIHg3(6G?t&w!&NFj!ArG>FB)a zh*yz+CSSauo>)Biu@hx$R_j~qE2*d}nlX+(iT63GrKL4!Q5>O@8}C;o<#3#7*h$vB z=qy)iFMtl}B!o3d4ym%@sv4yTa>-78rT0@z;#Yc^PbVm2$AxcWR`rtAZFofTCAK*nwf7j?D0{IEZ7G9O%6*VY25Na`A0$nFlS#UJ~-qm&bLl)v+bng~EU zt#K~8Wf*Q*;uFSc!NMBWJ_F`F?xoP3>@z8D@^)ZD_arB<%ibL{@)`DBYh3J0KIMQyK$OoM!!os@igm;nGqT zH0gLm8&tvT#|`+;&zxi@hdGSDug=)B^4E26Tvyab$0=-E`3d-8l|FY6Hylm=wlo=H z7-AqWT74wT&Yz@Km_PVz#f7OUgweh5ql(``wo1-o9$pc~3}rN3*$D9-kW+LEVh&8N z+>wZl=%9IY9CYiu)Y>)T)E2DNP?Pr~n$;D-zMBI$X9~$Zk;?PW+~1I=gzNNB(+cVf zf4C@&;-h}Q>1zdTK)Bv)K(OS=6c2x@#~B>jRJjDqJi!+vT+j-yAQy)T@1C%$J0k~* zL*G*x+oyc&Aw>F~vAM$~WWbu^h)ijfCOHok^3x&ghK-re;-~yOY|uaj=o}DQdeC&! z4ye-FGn74Hs_?0amH^6B`_m^G8ez;8Q$A{+p1>ffHLRI5yCFm#;lbGfgos)M>6Zt& zrBl3VwBPCqW|jDcu2n6%fiA5&3d(-(I8lGMYHd7fv*T(oL`oep^sHPpddh2U?&9g7 zMXH-rpDp)KvBc*Owyg!Fht_B#Lay>s{sh9rbOfB!nWGyc2i_Ajm7?4THi{auQ0gHK z`p7*ozcV~32&i?4y_oZ#)S!C{f6D>F@<-2G7F^xG6!k2Q5I_KJXwm~mQAqF$u?F2k zL3q3`erB4?Zkx4z-@8%K2uK`QRUg0mvJqIs zyI+*pSiSOLsjwpn+L3K-nt6fgf%7F@P|_mmtD&f1!|C*yV*26*r`Hbnd@J=uG>Nke zLbEc=q_W0;hIRy3nv%u?DVN0ufA~+6y43+|ksN@2!k&Xg(L*Rza7J$+ea>WU&J(sg z-n#+sZU1(Za?fAwU7XH*d2?9zQ1Xa@V`ntE8<`n{?n@bXEcqx}Mj*z+_o>!>U*Dry z-HgkrcO8|5@)a(-I*z=^*CWUw%zbdHKBU@OkBA8;H}y$eQ=_kh6vJ6aZpUt&{Khua zX*bErUk0~d#4^yimrcGjFx$y6Z$qh$nAa7K&IlBdmGx2`q15I3PbteHekuKy={t;e z(=WlDF|4M$VTp85Hk`xXLLhfr6t6@#Dl8?ipQ~|SarlIs71(R~{ zAdF+-iCO3x3Drg!<8FL8AY106bmzH|&_rH1ojlpRILcCCcF1Mh+pG)wr}|+jcl)EH zHt(cf%%wijU47GZ!hkKSG(o&i#W*Ul_&Bz#?~-)=bn)vo^ZDd2u#m$~XWG8taDw;% zp*G5&vxEzJR#y#zMzE2(lbMxdu{$kG zFXes+Cpayb-|-r$=y=XefykC9}suFdNT0^Q9 zc^z_h+Ix8|bukzoP%bxg$tii-jpk#l5zRIB*S^+H4s^+Ck_j?ZANt21bT9fR?PAwU zH<+~{FvPMCoSX19k8=prWm`ky?Tc^c0gaJmpH|tK3+#Ack=xy-J_eF%wEr$rv*^u4DVJY?JivChT znZopQz~QjrC|dU^U0jP^vOrK~-(uQ$0Hehg9!ka`2VE19@RSq2;GDdZx z-&5Bb6sA8P8nGnc8<39i!vDxtn(vV!2V*K|oR2 zipmlLq$&Z4gJFO&qhLY85@oMgt%5;J5hF4q31J6Bra*|JfQSJBAwURGQ)UPOLV%F< zJ|wi?@B8cf`dcv0V_v-LQ|*d=pO*F0J! zy&*~)a~MRx1qYfxT9KzQ8Cb7z)wHQODh`&-%7iE6@vO4lF^-AVw|{-nDou10IC5#S z`B!mWJ2@zkRN~g41sXx)J%V05c|CpQQ^54Q11%CK!NJXM0b!AJO_K035gtiDA2=Wk zA{wE&#cTXMb@*0le&}?xV%kdlZGsZ&)_5kF3))5%r;-=UwNLej_+u{CI8J-Qf+x*2 zQJov z`Z&%=5-0FTThU^kdcnEsLt~m_FAj|*#MD?`bds;DDA8Vq6@i zd@e~KEU)+leuFQdF*>usniNL8hWX3JyXaA^f$AYa0F_s~mm=RzvHUR%Dd~I?*c4fN1u70@DxNWuOnSYdn zle|lAd_;y;BOfak_Eb&i4VoZZFUjjt^dF)e!Z~F%`C>6gJXhEQUYjmfE3XifB|!~()4fC6>WdF=2w-<7$|c=3#n-*q?(ZFq$>dssk5eQJrbcn&Dbo5y9iH{W z27@QnRvd}~EJdQ1`%1RPh=cW3JzS101z^DrWmzcw3dyfWo;9KQh|;fgCEBd0|K-n8 z;j|Gb-p5+_Y~kH#&RAQroThTE_2fcaY0xyO^|wICL!z=gXhXFi~q4 zLrjwXW-x zg`$4M@wq8;s$7Y%|U|Z@x!bBtixq>p+8dBcm1>Js%5lSdl5{3 z;b*n)l;tWE;+{|DOUmOqdrqKMbo!yhQ01<>9)|k2pJ+YHx_gc@c^gMlRJs7c`sTDq zm{fB9lEGS!;_FYv1pPu<*(0-KAaLoBcGcEzGaH^6=%-9HFg^1HaPc_&;_YI7h{Tl` z#+P;u-QtN>N4I?jnIJlR_@I1jT^dleHcJZJ7(|?YaY>`zo2QZWtp?r7`t^l5bWhlf z;(*m%chirTl8#AV(5rjsJl}-EH`i|G}NF`t5B~VXYi)T_k&hp)?FyX)9L#q zbkf@N$Z|aELj%;Q4i*eIM^5yebj^ERJ6p6M>0*fJ_Kp55X@_8A4)jp|XpkjsbAJEq z_Gf%91_i~QUSN32o6#dHVc}yRD>HZ>4^@s__Hnv)-Y=LNM|Hn$(+WO-~6s zBcJl2z9Hv(TZpdncUF*}P0B~~zRkc-TR@P)a`<7GveIwP)otF#+Pz(@A=gbnVS)Zp z5-|3j$6a3`E;}#-L6ESj#E1e^^)LOx!RWT9ELV%}?&LM3+g`KPu%aGgaHza4vBrDf z`eG(sgJ4w+o)E%W~17xM?cAK3jdryE<|-1Qn0kM=05)Q_Y%{97Ykt@L zglU*{$=V1CfqNr7nTn`zj~paF-B$1KN^F>de|Nc5a$%ix`V3l%ZIkSeSJ%hHeDmn+ zqXi>8tt`>C4xD^YmG1g@^PSzW%7!9$9Ynb5zzvYCy{dchuHjgV8B#~!B#)0Lpzv=_ zdYfZpEY;iN&1odW%vR|N^8YJ3%xRgXH*)pX1-DMXQx z%wz=gp7mcT?0s4*r-Kb0Ou2d`CEPQ5ZY1J^twIn~i{vNlf6?pDjmhKu&6#eL^2Dtsc7rdV6L=vFBn>~^x(+D6{Dx^aPC4(Tqu-~oRDYjTygdpAEBmAsHrLh!dZvUq zLhN%lDIf3Ln=DG9M^uxPb({`QRGBd=K4o{CUIMs?q`eoZ)DH%|C(lwfkXFoS`u5(mM6FNc#Xb|dxbE1MJUEt1~fvh59J+(5oiBD`ZJ z%=I85^6ehiAGuSNTrXYfSG#`Fx60{qysWVKFO`Mx(mHCTU9s zWn&L$(`ZC$YpwXJh#n+@pR0z99c`+4UcO|Ol=La;vQKqlK3A&pT)x>2TXQ9B;I`%` za6>vQIKEyp&*RVOFIEaUfrN9C`m!Pyc4n%3$>WzuiH=DYSrOBH6v3scj4{+%5`=B< zn1NmMYKYUp$irR<*JRDZmKqo+qfm;aGG-zK&BLz2=N2@l!i;rvV6K0)@Wj18%Ww@FkD0fjBM+7WMN59L}Dm2P5If-6xiMuCPB={$XpD6)&7L5f_{C z6P0V^k1#mPOQJcuTvwIuKjZ#h)OyXamRK&0zl}3SN|n>JHXL2*d_A!qr8aFc8kErq z(2Xt^;F!rvl~;ZS_1*^cUd@ms)dA9ScEHBPAzljlq?4qQO!Z0`m2G*1#t6~3*Se7L zRYf}5EjNdf+G_gHutf^K`)JdSP8kI|-!v=^y@ZeY#FDqitK~I-RaElhA<`!{IoJ~Z z#nalCEd7kpn!afyV>dqk@B>DpEP5~H)FF?zS0b9Tu1gu7O);3Hgt_lqVx~{k z0yUSJ98=Wc^dLXpYGd%9fss00^?a`@u=7uBJV6THI0pC%diw8KD{LG;e*VZ9V}|kX zrB~UMKJEytTNy2vX?`)zrwJE$Gu1lhWSn~IuKJB*fB@0l*Pt6{6a5sjHp-H{_vwGe z1NdW1VR~fpvAxRJ(5q=z`S-3}rGrMKqu%1&cbsm1Y{R^4u$DZoo7sV#v9}@a8XirG zm(rjR-jgWlfS(2He4N6x%b}j5P3{Mj5wVXVD*GnyExU-e1uD}61EWD&G1y`z&Vek>LdvPTEOCF;`;X3h7@$QsisN* z$}05+=t#p1XvW68teTpSjacV6YIS;UT8KO1DYBhwQ3m!|%6LBAdn&?jKErmf3^G>H zK31WqNAYbWhe{$R)|pTZDk|0N*bGE)RRSU(EN8$qwuU!8 z*{|e4jsDo!5&-lR7_>c;=*lZg2c7>G*tJjPZuqP)yK>{)+;b7NyB5UyH>cYc0ySvF zuKF*H3&P;*XmL=trl5CE(li4eeai{-uqPU*52A+x+oHxE%#0R5+g6LK6D`EVfFm;V zW~BZ*Mojk?S2b;%G}P$%A7SFZ3|!_`w=lm$)y}HYckfK@cTfiWcB^a^?gJlu6v2VK z^m=%MXR%a>>oxs{}paM@;uSkMV2$9FZmJAeTP@{Y``cH5!hb_WR0Kmysa1w zUxl46zB=Ba0B`Mx8aWmB(%buytshx|KP>2C&$`yDxYo(SV}cdfdgWW6dY?}@px%%j zenY5t4&{L1wcGL#!N1z|>Z!Ibo-*D^gKHJIu;uTZAPwEehsRI1%Y6P;)nu}H*qAU% z{H8gY^Yv}A+%|K75}qzUGSi%Cf}_Q%>5RuM<;Tm&^;fAYeD35H^c8_@4x3#6vqQ$1 zRtP|)VX*NVC-C4Uz>z&562JX&eXUbVq?%FWzP&l^Y-_vBa$l7Li@X`X?DM#5T-VLv z0CKKP<{TBL{^6QW6YSD$9v!TIBAcquVL;vKdw0*>M3p|Z6a95+O84Zp$peSd{o&mg zXZ)wF&J-V1jpjM@5thffkJ?$R?(UEoTR+w}Xjy}2!piSZIp_QA2A%L<#@59kT{kq| zJjA}{V(r(1Wo^UuKs>^Dgn#-4?5e*;^%s>>f<*oFycF@5@!|7rtITGQ`$;NU3DaW1 zMk-W$$5tfEPHD8BIZfEo$((Ie!4Fe=XQKhtXYm9Hp$7QvPXspIv>fwf4IM{aTal7) z+_VmkoEFrxe>q1Wn^*8m$E44z^2foDK%oP{_`!&fC;X}*;!dIG8g)W!qRGmHz8%b} zerW-<>9Yo4Pgf!|Vz+-S^dgV!g`uA-OpPp5)(?)&kJ+{O{7{0wku_^@o8dCebtOi zXMPUomb<10%6lJ(rnUna2Kg{bYmJl1dJ^XpwiEZMsil~9R(TEEy%z0JooCK`Zq+ms zosiwJT+6s_xym2@nq{9MCJfd}lK#vxmT9E7D5CiZN)DqN9f+fchaJ{WKRIWb+2jbpW4z&V16+e4-^9J(a|p=Dv<{I zu{TE~0AKyW|6I%c=pD`~rDsIl738rb(qoE{kJR9-&M@#2#d zC!rQH2REkX30R0$S{`&=YTT^^wla2$*h#|L=zkTO_lR{#efGlG4pHX=^~HE z(3{l7RGt7$>oHeHsv8Ix$0TJuhmmtm)7$Z8NRc&5_H?U$LEoj_d3GAKYL~~reR~y! z>2-*7^YUtQgK_(s-E&nmvg1gC5Th}K99Yv~-#MX2#Ydl!35E0QY7za+`8Vm%Suapo ziHhiy9%9S%cvPr8kl+9slQVhziRBT0MiIMw%_#2OYWX19U*dUziu{yflC`5Z#r7n_ z=f3L`pO9#`+JH1(Pr?SeI#SSgX9+j9*QV4IP^)&++cS6l7RN*6wkJijQez{DE4I1i$bD{2n{kG==o~RnB1)+lH^yuZkE`BgcazDX`w5$=K;j0CeTWgs zK=-lsGXUsz7R-vy(*&G>!%~}k)iCqF1YB8+y4AszhS-9Q6VdA#?;n$wefMQTrkegC z`@%qHq3jQ@cE!IeaGq`N?mo3Q@?LMq*(b6m^83&|q+4leBTiLz2LUl@Ozh)uRUPN)bxy_LZY2+!2Z7}>Y9sqU^jpk%=Vi2?I{bC%xdzEyzPCh$x12z7 zR7k4;7YE1gd+6c%nx@YaKw~{`cK1()8DjM?9mDQ=%R1vOZCpjh zWOMO3R+yJ3(y!7v=nG%A;ZH12!1TW*;Mtbh<1cUd<5YOKZ%alWyiT(+s3!NL-*#FJ zT${jLQ%|_>+E)Rj!#x8yQrvn%oN}I2Can_+mEO~R6}#$AWOXwh)HoYFR9^0A4ie$7 zalC!N>ssI9jsShSC`p@J6(i=Z1Tb06>4hMtJxfecf<%^ZTbPl#Y1krTviDewsIH-( z$5@s1p=^R%>cZmUKc-zgjLslk=sy1*NWA7d+--YV(yWTek_uzpBkNIbRFQQ4PS)M$ z6URm^k)>O&4|+)YKOiYniMef2d)aQjAK}7XQ+2FfvGYA8b`Z;x_s=`_!So@7$95W+ zq2VcA97zA}V9CKa=OBvYcb2DsZ`W(xiHE7$AT0*Ysr8aZtiyzXhuuzEF$LdCm(VA7 z%kNPBU*~b8iGBLSP|KO_KsT04~)JHyVaYTbZp{OoP|Gt2PH+u7yuCEO>M7f zgjd6i9y<87OoWq%o7!()OE9e%=*oQ@d`wE})sG}{o&U{&t-6J#cmIyh( zwclaN!d2@|G*x?*s_^_ZXn9>BLrpjC@FC_PBQ(~e^1F;93tTj(J< zmFqM6XKw~r24&_|h5ri>2)_gLIf)^#l@YlrZNR_TEom7+v#1XcsQ|lU!5D2g_c!*mEFw+%ZNS!BZr#h#T$FKgQ`%Wqh74M~ zvLfaGjWTq&Ed|a_-X^$p+FPmH6v{1W81;JWwok;>bjP8&>Hx?u-{aX z-F;&t1iakhqVK(z1L2wA);p5MZYJaK~1mo=ms8K`Rkhk zXN^gGN^h*Sm<>trx^_-hzZ=Pb&gwJDOViNftG#+R+Zj5db<^0LwTyZYr_KuROdNIF+zmpITHb2E~U zeAza(8awRLPXqdXPUSvk^?D|*?C5*vQTHxqU?|6B8^L}1%47%QArTim)qXh;B1!Hh z@7p6WcHX#rp#>p#^3rq^AZO~YGiL0skEDX%c^n}B+D#wd+oTQ9aj*=4j>CeDOLvnM z>+VdiQb*i)$SI+5;MKPmBksAM*th~HhLW!fLrwh);?6v=W$QjXT^4zSv&X;YTG2Yy z8{AMt?a1rt*-UK*AFeyn!I`x)tgV^@CS{cPAk`9`@R9LcYnyaMKL5JzC%ygCc^M4wQKoGw9v}EMzmN&Sm-A#bWlAp3z^Vbf4{3YP3;V* z4LD?BI;E2F3#As37!8IWXPC{}J{gNZ^hfNV-!smWzV6nR*m_4jI{p5XCXiA!kY(Y@ zbyJ4FAIA(araQjWlCs=zk)750p02GUO_&wqPpoVan7Gx0NmoLMo2|mpl?6GTW zA&PAAK3uJ-n^Q)|aJUh`NsW<4`iDyY3O^a7$-~Kb=@BJRId$bHpj}~ryU|crPoISb?NEH^`0huKPT3#YJtGbsf^X(&>5^2E(FYS&4NF1B6w13F@IGJ&J)jnaGyagfaUk3BokZ@pGZC~MsjbpR OQ+vooo66IdZ~tF$c*sxy literal 0 HcmV?d00001 diff --git a/k8s/port.md b/k8s/port.md index 4ffbd9f..01f1c41 100644 --- a/k8s/port.md +++ b/k8s/port.md @@ -1,3 +1,4 @@ +kubectl explain service.spec.ports nodeport clusterid headlss