通過kubeadm安裝kubernetes 1.13.2

      網(wǎng)友投稿 904 2022-05-29

      1, k8s節(jié)點準備工作

      在每個master和node節(jié)點上準備如下工作

      #1?設置并記下Master/Nodes節(jié)點之間以及內(nèi)外直接NodePort通信所需的網(wǎng)絡接口名,其IP作為Node?IP。 #2?編輯/etc/fstab,關掉swap分區(qū)(需要重啟后生效) #/swap.img??????none????swap????sw??????0???????0 #3?設置好/var/lib/docker目錄,?可以在/etc/fstab里掛載一個單獨磁盤 /dev/sdb?on?/var/lib/docker?type?ext4?(rw,relatime,data=ordered) #4?安裝必要軟件和下載工具 apt-get?update apt-get?install?-y?apt-transport-https?ca-certificates?curl?gnupg2?software-properties-common curl?-fsSL?https://download.docker.com/linux/ubuntu/gpg?|?sudo?apt-key?add?- #5?若apt訪問倉庫需要代理,設置/etc/apt/apt.conf: cat?/etc/apt/apt.conf: Acquire::http::Proxy?"http://代理服務器IP:端口"; Acquire::https::Proxy?"http://代理服務器IP:端口";

      #6?移除ubuntu自帶的docker.io并安裝docker-ce apt-get?remove?docker?docker-engine?docker.io?containerd?runc apt-key?fingerprint?0EBFCD88 add-apt-repository?"deb?[arch=amd64]?https://download.docker.com/linux/ubuntu?$(lsb_release?-cs)?stable" apt-get?install?-y?docker-ce

      #7?若docker訪問倉庫需要代理,設置如下文件: cat?/etc/systemd/system/docker.service.d//http-proxy.conf: [Service] Environment="HTTP_PROXY=http://代理服務器IP:端口/"? cat?/etc/systemd/system/docker.service.d//https-proxy.conf: [Service] Environment="HTTPS_PROXY=http://代理服務器IP:端口/"

      #8?增加k8s軟件包源到apt的庫表(bionic對應表沒有放出來暫時用xenial代替) curl?-s?https://packages.cloud.google.com/apt/doc/apt-key.gpg?|?apt-key?add?- echo?'deb?https://apt.kubernetes.io/?kubernetes-xenial?main'?>>?/etc/apt/sources.list.d/Kubernetes.list

      #9?按裝kubeadm即可安裝kubeadm?kubelet?kubectl?kubernetes-cni sudo?apt-get?update sudo?apt-get?install?-y?kubeadm sudo?apt-mark?hold?kubelet?kubeadm?kubectl #?若事后發(fā)現(xiàn)網(wǎng)絡有問題,可apt-get?remove?kubernetes-cni再單獨重裝 #?若事后發(fā)現(xiàn)k8s和docker在cgroupfs和systemd的drivers上不一致導致問題,可參考如下解決: 修改kubelet的啟動配置文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 最后一個Environment后面增加一行: Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" 最后一個ExecStart行的$KUBELET_EXTRA_ARGS之前增加$KUBELET_CGROUP_ARGS: ExecStart=/usr/bin/kubelet?$KUBELET_KUBECONFIG_ARGS?$KUBELET_CONFIG_ARGS?$KUBELET_KUBEADM_ARGS?$KUBELET_CGROUP_ARGS?$KUBELET_EXTRA_ARGS 執(zhí)行生效并確認kubelet服務重啟OK: systemctl?daemon-reload systemctl?restart?kubelet systemctl?status?kubelet

      #10?預先下載kubeadm?init所需鏡像 #方法1:網(wǎng)絡直通gcr.io或者翻墻可通(博客另文有述),?執(zhí)行kubeadm?config?image?pull #方法2:根據(jù)方法1得到鏡像'k8s.gcr.io/鏡像名'清單,從其他完成的node上執(zhí)行?'docker?save?k8s.gcr.io/鏡像名?>?鏡像名.tar',?然后拷貝到本機執(zhí)行?'docker?load?鏡像名'?加載進來 #方法3:從阿里云等替代源docker?pull下來,tag為k8s.gcr.io前綴。新前綴鏡像可以push到自己的倉庫,也可以save出來備用。原有前綴可以docker?rmi刪除之。 #方法4:從阿里云等替代源docker?pull下來,執(zhí)行kubeadm?init初始化之前修改kubeadm配置文件使用阿里源前綴。 例如1.13.2需要的鏡像如下: k8s.gcr.io/kube-proxy????????????????v1.13.2?????????????01cfa56edcfc????????12?days?ago?????????80.3MB k8s.gcr.io/kube-apiserver????????????v1.13.2?????????????177db4b8e93a????????12?days?ago?????????181MB k8s.gcr.io/kube-controller-manager???v1.13.2?????????????b9027a78d94c????????12?days?ago?????????146MB k8s.gcr.io/kube-scheduler????????????v1.13.2?????????????3193be46e0b3????????12?days?ago?????????79.6MB k8s.gcr.io/coredns???????????????????1.2.6???????????????f59dcacceff4????????2?months?ago????????40MB k8s.gcr.io/etcd??????????????????????3.2.24??????????????3cab8e1b9802????????4?months?ago????????220MB gcr.io/kubernetes-helm/tiller????????v2.9.1??????????????6253045f26c6????????8?months?ago????????36.1MB quay.io/coreos/flannel???????????????v0.10.0-amd64???????f0fad859c909????????12?months?ago???????44.6MB k8s.gcr.io/pause?????????????????????3.1?????????????????da86e6ba6ca1????????13?months?ago???????742kB

      2, 運行一鍵k8s安裝

      kubeadm init? --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=

      3, 為跨節(jié)點互通安裝flannel

      wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

      這個文件里面搜flanneld有五個不同架構下的DaemonSet配置, 需要在amd64架構那個DaemonSet的args下增加--iface

      然后執(zhí)行:

      kubectl apply -f kube-flannel.yml

      4, 讓dns等pod也能在master node上駐扎

      若只有master一個節(jié)點,coredns的某些pod可能不能啟動,需要node去污點解決:

      kubect get nodes

      kubectl taint nodes node-role.kubernetes.io/master-

      kubectl get pods --all-namespace 確保一切pod進入running狀態(tài), 否則用kubectl -n kube-system logs 查看問題

      5, 開啟ipvs

      集群的svc和pod數(shù)量較多會導致iptabes的DNAT規(guī)則劇增性能難看,需要開啟ipset+ipvs去承擔DNAT工作:

      -- 安裝必須包:

      apt install ipset ipvsadm

      -- 確保mod存在:

      for i in ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4; do modprobe $i; done

      lsmod | grep -e ip_vs -e nf_conntrack_ipv4

      -- 編輯etcd里的ConfigMap:

      kubectl edit cm kube-proxy -n kube-system, 修改為 mode: "ipvs"

      -- 刪除kube-proxy全部pods使之重建:

      kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "" -n kube-system")}'

      參考文檔

      通過kubeadm安裝kubernetes 1.13.2

      https://www.kubernetes.org.cn/4956.html

      Kubernetes 鏡像服務

      版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。

      上一篇:UML類圖常用用法
      下一篇:ORACLE常用性能監(jiān)控SQL【二】
      相關文章
      色欲aⅴ亚洲情无码AV| 亚洲经典在线观看| 亚洲理论电影在线观看| 亚洲av中文无码| 亚洲国产精品18久久久久久 | 亚洲黄片手机免费观看| 亚洲欧美国产日韩av野草社区| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲视频2020| 亚洲一区二区在线视频| 亚洲韩国—中文字幕| 亚洲一区免费观看| 亚洲国产精品国自产拍AV| 亚洲成a人片在线观看无码| 国产精品国产亚洲精品看不卡| 国产成A人亚洲精V品无码| 亚洲成AV人在线播放无码| 久久精品亚洲综合| 亚洲国产综合专区电影在线| 亚洲高清日韩精品第一区| 亚洲第一区视频在线观看| 亚洲伊人久久大香线蕉啊| 亚洲国产成人99精品激情在线| 亚洲Av高清一区二区三区| 国产成人亚洲综合一区| 亚洲欧美第一成人网站7777 | 亚洲日韩久久综合中文字幕| 亚洲精品无码久久久久秋霞| 久久精品国产亚洲AV果冻传媒| 亚洲国产成人久久精品动漫| 亚洲高清视频免费| 亚洲精品二三区伊人久久| 亚洲精品无码你懂的| 亚洲国产天堂久久综合| 红杏亚洲影院一区二区三区| 亚洲日本乱码在线观看| 亚洲国产综合91精品麻豆| 亚洲av无码片在线观看| 亚洲av永久无码精品网址| 亚洲精品成人区在线观看| 国产亚洲精品成人久久网站|