Ntau ntxiv, cov neeg siv tau thov kom peb muab kev nkag mus rau Kubernetes pawg kom nkag tau rau hauv cov kev pabcuam hauv pawg: kom lawv tuaj yeem txuas ncaj qha rau qee qhov chaw khaws ntaub ntawv lossis kev pabcuam, txuas rau daim ntawv thov hauv zos nrog cov ntawv thov hauv pawg ...
Piv txwv li, yuav tsum tau txuas los ntawm koj lub tshuab hauv zos mus rau qhov kev pabcuam memcached.staging.svc.cluster.local. Peb muab lub peev xwm no siv VPN nyob rau hauv pawg uas tus neeg siv khoom txuas. Txhawm rau ua qhov no, peb tshaj tawm subnets ntawm pods, kev pabcuam thiab thawb pawg DNS rau tus neeg siv khoom. Yog li, thaum tus neeg siv khoom sim txuas rau qhov kev pabcuam memcached.staging.svc.cluster.local, qhov kev thov mus rau pawg DNS thiab hauv cov lus teb tau txais qhov chaw nyob ntawm qhov kev pabcuam no los ntawm pawg pabcuam pabcuam lossis chaw nyob ntawm pod.
Peb teeb tsa K8s pawg siv kubeadm, qhov twg qhov kev pabcuam subnet yog 192.168.0.0/16, thiab lub network ntawm pods yog 10.244.0.0/16. Feem ntau txhua yam ua haujlwm zoo, tab sis muaj ob peb lub ntsiab lus:
Subnet 192.168.*.* feem ntau siv nyob rau hauv cov neeg siv khoom siv tes hauj lwm, thiab ntau zaus hauv cov neeg tsim khoom hauv tsev. Thiab tom qab ntawd peb tau txais kev tsis sib haum xeeb: cov routers hauv tsev ua haujlwm ntawm lub subnet no thiab VPN thawb cov subnets ntawm pawg mus rau tus neeg siv khoom.
Peb muaj ntau pawg (kev tsim khoom, theem thiab / lossis ntau pawg dev). Tom qab ntawd, los ntawm lub neej ntawd, txhua tus ntawm lawv yuav muaj tib lub subnets rau cov pods thiab cov kev pabcuam, uas tsim teeb meem loj rau kev ua haujlwm ib txhij nrog cov kev pabcuam hauv ntau pawg.
Peb tau ntev dhau los tau txais kev coj ua ntawm kev siv cov subnets sib txawv rau cov kev pabcuam thiab cov pods nyob rau hauv tib txoj haujlwm - feem ntau, kom txhua pawg muaj kev sib txawv. Txawm li cas los xij, muaj ntau pawg hauv kev ua haujlwm uas kuv tsis xav dov los ntawm kos, vim lawv khiav ntau cov kev pabcuam, cov ntawv thov hauv xeev, thiab lwm yam.
Thiab ces peb nug peb tus kheej: yuav ua li cas hloov lub subnet hauv ib pawg uas twb muaj lawm?
Nrhiav kev txiav txim siab
Qhov kev xyaum tshaj plaws yog rov tsim dua tag nrho cov kev pabcuam nrog hom ClusterIP. Raws li kev xaiv, tuaj yeem qhia thiab qhov no:
Cov txheej txheem hauv qab no muaj teeb meem: tom qab txhua yam teeb tsa, cov pods tuaj nrog tus IP qub li DNS nameserver hauv /etc/resolv.conf.
Txij li thaum kuv tseem tsis tau pom qhov kev daws teeb meem, kuv yuav tsum rov pib dua tag nrho pawg nrog kubeadm pib dua thiab rov pib dua.
Tab sis qhov no tsis haum rau txhua tus ... Ntawm no yog cov lus qhia ntxaws ntxiv rau peb rooj plaub:
Flannel yog siv;
Muaj pawg ob qho tib si hauv huab thiab ntawm kev kho vajtse;
Kuv xav kom tsis txhob rov muab tag nrho cov kev pabcuam hauv pawg;
Feem ntau yuav tsum tau ua txhua yam nrog tsawg kawg ntawm cov teeb meem;
Kubernetes version yog 1.16.6 (txawm li cas los xij, cov kauj ruam ntxiv yuav zoo sib xws rau lwm cov versions);
Lub luag haujlwm tseem ceeb yog los xyuas kom meej tias nyob rau hauv ib pawg uas siv kubeadm nrog cov kev pabcuam subnet 192.168.0.0/16, hloov nrog 172.24.0.0/16.
Thiab nws nyuam qhuav tshwm sim uas peb tau xav ntev los pom dab tsi thiab yuav ua li cas hauv Kubernetes khaws cia hauv lwm yam, yuav ua li cas nrog nws ... Yog li peb xav tias: "Vim li cas tsis yog hloov kho cov ntaub ntawv hauv etcd, hloov cov qub IP chaw nyob (subnet) nrog cov tshiab? Β»
Tau tshawb nrhiav cov cuab yeej npaj ua haujlwm rau kev ua haujlwm nrog cov ntaub ntawv hauv etcd, peb tsis pom ib yam dab tsi uas daws tau qhov teeb meem. (Los ntawm txoj kev, yog tias koj paub txog txhua yam khoom siv rau kev ua haujlwm nrog cov ntaub ntawv ncaj qha hauv lwm yam, peb yuav txaus siab rau cov kev sib txuas.) Txawm li cas los xij, qhov pib zoo yog lwm tus pab los ntawm OpenShift(ua tsaug rau nws cov neeg sau ntawv!).
Qhov kev xav tom ntej no yog qhov laj thawj: "Dab tsi txwv koj los ntawm kev ntxiv cov khoom siv no los ntawm kev ntxiv peev xwm sau cov ntaub ntawv rau lwm yam?"
Nws tau los ua ib qho kev hloov kho ntawm etcdhelper nrog ob txoj haujlwm tshiab changeServiceCIDR ΠΈ changePodCIDR. ntawm nws koj tuaj yeem pom cov cai no.
Cov yam ntxwv tshiab ua li cas? Algorithm changeServiceCIDR:
Peb txuag rau peb tus kheej etcdhelper.go, download dependencies, sau:
wget https://raw.githubusercontent.com/flant/examples/master/2020/04-etcdhelper/etcdhelper.go
go get go.etcd.io/etcd/clientv3 k8s.io/kubectl/pkg/scheme k8s.io/apimachinery/pkg/runtime
go build -o etcdhelper etcdhelper.go
Ceev faj Lub sijhawm no, qhov kev daws teeb meem sau tseg tsis ua haujlwm hauv pawg, txij li hauv cov pods uas twb muaj lawm /etc/resolv.conf qhov qub CoreDNS chaw nyob (kube-dns) tau sau npe, thiab kube-proxy hloov cov cai iptables los ntawm cov qub subnet mus rau qhov tshiab. Ntxiv rau hauv tsab xov xwm nws tau sau txog cov kev xaiv tau los txo qis qis qis.
Cia peb kho ConfigMap's hauv lub npe kube-system:
kubectl -n kube-system edit cm kubelet-config-1.16
- hloov ntawm no clusterDNS mus rau qhov chaw nyob IP tshiab ntawm kube-dns kev pabcuam: kubectl -n kube-system get svc kube-dns.