• k8s环境部署配置


    目录

    一.虚拟机准备

    二.基础环境配置(各个节点都做)

    1.IP和hosts解析

    2.防火墙和selinux

    3.安装基本软件

    4.配置时间同步

    5.禁用swap分区

    6.修改内核参数并重载

    7.配置ipvs

    三.docker环境(各个节点都做)

    1.配置软件源并安装docker-ce

    2.配置docker加速

    四.cri环境配置(各个节点都做)

    1.下载查看版本

    2.配置服务启动

    五.harbor环境(只有register节点做)

    1.安装harbor配置

    2.验证

     六.集群初始化

    1.下载k8s所需软件(各个节点都做)

    2.拉取所需镜像(各个节点做)

    3.master节点初始化 (只在master节点做)

    4.执行成功后出现此界面后进行权限设置 

    5.各个节点根据master初始化成功后的参数来加入(各个节点都做)

    七.收尾工作(master节点做)

    1.命令补全配置

    2.网络配置

    (1)flannel

    (2)calico


    一.虚拟机准备

    主机(我的主机名)IP
    master(node1-190.com)192.168.2.190
    node1(node2-191.com)192.168.2.191
    node2(node3-192.com)192.168.2.192
    node3(node4-193.com)192.168.2.193

    register(node5-196.com)

    192.168.2.196

    二.基础环境配置(各个节点都做)

    1.IP和hosts解析

    1. [root@node1-190 ~]# vim /etc/hosts
    2. 192.168.2.190 node1-190.com
    3. 192.168.2.191 node2-191.com
    4. 192.168.2.192 node3-192.com
    5. 192.168.2.193 node4-193.com
    6. 192.168.2.196 node5-196.com

    2.防火墙和selinux

    1. [root@node1-190 ~]# systemctl status firewalld.service;getenforce
    2. ● firewalld.service - firewalld - dynamic firewall daemon
    3. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
    4. Active: inactive (dead)
    5. Docs: man:firewalld(1)
    6. Disabled
    7. #临时
    8. systemctl stop firewalld
    9. setenforce 0
    10. #禁用
    11. systemctl disable firewalld
    12. sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config

    3.安装基本软件

    [root@node1-190 ~]# yum install -y wget tree bash-completion lrzsz psmisc net-tools vim chrony

    4.配置时间同步

    1. [root@node1-190 ~]# vim /etc/chrony.conf
    2. :3,6 s/^/# #注释掉原有行
    3. server ntp1.aliyun.com iburst
    4. [root@node1-190 ~]# systemctl restart chronyd
    5. [root@node1-190 ~]# chronyc sources
    6. 210 Number of sources = 1
    7. MS Name/IP address Stratum Poll Reach LastRx Last sample
    8. ===============================================================================
    9. ^* 120.25.115.20 2 8 341 431 -357us[ -771us] +/- 20ms

    5.禁用swap分区

    1. [root@node1-190 ~]# swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab && free -m
    2. total used free shared buff/cache available
    3. Mem: 10376 943 8875 11 557 9178
    4. Swap: 0 0 0

    6.修改内核参数并重载

    1. [root@node1-190 ~]# cat >> /etc/sysctl.d/k8s.conf << EOF
    2. vm.swappiness=0
    3. net.bridge.bridge-nf-call-ip6tables = 1
    4. net.bridge.bridge-nf-call-iptables = 1
    5. net.ipv4.ip_forward = 1
    6. EOF
    7. [root@node1-190 ~]# modprobe br_netfilter && modprobe overlay && sysctl -p /etc/sysctl.d/k8s.conf
    8. vm.swappiness = 0
    9. net.bridge.bridge-nf-call-ip6tables = 1
    10. net.bridge.bridge-nf-call-iptables = 1
    11. net.ipv4.ip_forward = 1

    7.配置ipvs

    1. [root@node1-190 ~]# yum install ipset ipvsadm -y
    2. [root@node1-190 ~]# cat <<EOF> /etc/sysconfig/modules/ipvs.modules
    3. #!/bin/bash
    4. modprobe -- ip_vs
    5. modprobe -- ip_vs_rr
    6. modprobe -- ip_vs_wrr
    7. modprobe -- ip_vs_sh
    8. modprobe -- nf_conntrack
    9. EOF
    10. [root@node1-190 ~]# chmod +x /etc/sysconfig/modules/ipvs.modules && /bin/bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    11. nf_conntrack_ipv4 15053 2
    12. nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
    13. ip_vs_sh 12688 0
    14. ip_vs_wrr 12697 0
    15. ip_vs_rr 12600 0
    16. ip_vs 145458 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
    17. nf_conntrack 139264 7 ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4
    18. libcrc32c 12644 4 xfs,ip_vs,nf_nat,nf_conntrack

    三.docker环境(各个节点都做)

    1.配置软件源并安装docker-ce

    1. [root@node1-190 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
    2. [root@node1-190 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3. [root@node1-190 ~]# yum install -y docker-ce

    2.配置docker加速

    1. #自建harbor仓库情况
    2. [root@node1-190 ~]# cat <<EOF> /etc/docker/daemon.json
    3. {
    4. "registry-mirrors": [
    5. "http://74f21445.m.daocloud.io",
    6. "https://registry.docker-cn.com",
    7. "http://hub-mirror.c.163.com",
    8. "https://docker.mirrors.ustc.edu.cn" ],
    9. "insecure-registries": ["node5-196.com"], #写register的域名,各个节点都写register的域名
    10. "exec-opts": ["native.cgroupdriver=systemd"]
    11. }
    12. EOF
    13. #没有自建仓库
    14. [root@node1-190 ~]# cat <<EOF> /etc/docker/daemon.json
    15. {
    16. "registry-mirrors": [
    17. "http://74f21445.m.daocloud.io",
    18. "https://registry.docker-cn.com",
    19. "http://hub-mirror.c.163.com",
    20. "https://docker.mirrors.ustc.edu.cn" ],
    21. "exec-opts": ["native.cgroupdriver=systemd"]
    22. }
    23. EOF
    24. [root@node1-190 ~]# systemctl daemon-reload && systemctl start docker

    四.cri环境配置(各个节点都做)

    1.下载查看版本

    http://be18.cn/cri-dockerd-0.3.4.amd64.tgz

    1. [root@node1-190 ~]# tar -xf cri-dockerd-0.3.4.amd64.tgz -C /usr/local/
    2. [root@node1-190 local]# ll
    3. total 0
    4. drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
    5. drwxrwxr-x 2 sulibao sulibao 25 Jun 30 03:31 cri-dockerd
    6. drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
    7. drwxr-xr-x. 2 root root 6 Apr 11 2018 games
    8. drwxr-xr-x. 2 root root 6 Apr 11 2018 include
    9. drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
    10. drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
    11. drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
    12. drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
    13. drwxr-xr-x. 5 root root 49 Jul 23 08:59 share
    14. drwxr-xr-x. 2 root root 6 Apr 11 2018 src
    15. [root@node1-190 local]# mv cri-dockerd/cri-dockerd /usr/local/bin/
    16. [root@node1-190 local]# cri-dockerd --version
    17. cri-dockerd 0.3.4 (e88b1605)

    2.配置服务启动

    1. [root@node1-190 local]# vim /etc/systemd/system/cri-dockerd.service
    2. [Unit]
    3. Description=CRI Interface for Docker Application Container Engine
    4. Documentation=https://docs.mirantis.com
    5. After=network-online.target firewalld.service docker.service
    6. Wants=network-online.target
    7. [Service]
    8. Type=notify
    9. ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --cri-dockerd-root-directory=/var/lib/docker
    10. ExecReload=/bin/kill -s HUP $MAINPID
    11. TimeoutSec=0
    12. RestartSec=2
    13. Restart=always
    14. StartLimitBurst=3
    15. StartLimitInterval=60s
    16. LimitNOFILE=infinity
    17. LimitNPROC=infinity
    18. LimitCORE=infinity
    19. TasksMax=infinity
    20. Delegate=yes
    21. KillMode=process
    22. [Install]
    23. WantedBy=multi-user.target
    24. [root@node1-190 local]# vim /etc/systemd/system/cri-dockerd.socket
    25. [Unit]
    26. Description=CRI Docker Socket for the API
    27. PartOf=cri-docker.service
    28. [Socket]
    29. ListenStream=/var/run/cri-dockerd.sock
    30. SocketMode=0660
    31. SocketUser=root
    32. SocketGroup=docker
    33. [Install]
    34. WantedBy=sockets.target
    35. [root@node1-190 ~]# systemctl daemon-reload
    36. [root@node1-190 ~]# systemctl start cri-dockerd.service
    37. [root@node1-190 ~]# systemctl enable cri-dockerd.service

    五.harbor环境(只有register节点做)

    1.安装harbor配置

    1. [root@node5-196 ~]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
    2. [root@node5-196 ~]# chmod +x /usr/local/bin/docker-compose
    3. [root@node5-196 ~]# tar -xf harbor-offline-installer-v2.8.4.tgz -C /usr/local/
    4. [root@node5-196 ~]# cd /usr/local/
    5. [root@node5-196 local]# ll
    6. [root@node5-196 local]# cd harbor/
    7. [root@node5-196 harbor]# ll
    8. total 597536
    9. -rw-r--r-- 1 root root 3639 Aug 15 17:53 common.sh
    10. -rw-r--r-- 1 root root 611834153 Aug 15 17:54 harbor.v2.8.4.tar.gz
    11. -rw-r--r-- 1 root root 12499 Aug 15 17:53 harbor.yml.tmpl
    12. -rwxr-xr-x 1 root root 2725 Aug 15 17:53 install.sh
    13. -rw-r--r-- 1 root root 11347 Aug 15 17:53 LICENSE
    14. -rwxr-xr-x 1 root root 1881 Aug 15 17:53 prepare
    15. [root@node5-196 harbor]# cp harbor.yml.tmpl harbor.yml
    16. [root@node5-196 harbor]# vim harbor.yml
    17. # Configuration file of Harbor
    18. # The IP address or hostname to access admin UI and registry service.
    19. # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
    20. hostname: node5-196.com #修改为自己的主机名
    21. # http related config
    22. http:
    23. # port for http, default is 80. If https enabled, this port will redirect to https port
    24. port: 80 #注意端口
    25. # https related config
    26. #https: #https区块全部注释
    27. # https port for harbor, default is 443
    28. #port: 443
    29. # The path of cert and key files for nginx
    30. #certificate: /your/certificate/path
    31. #private_key: /your/private/key/path
    32. [root@node5-196 harbor]# ./install.sh #安装
    33. [root@node5-196 harbor]# docker images
    34. REPOSITORY TAG IMAGE ID CREATED SIZE
    35. goharbor/harbor-exporter v2.8.4 b8d33e28ec68 2 weeks ago 97.7MB
    36. goharbor/redis-photon v2.8.4 7b7324d651ca 2 weeks ago 120MB
    37. goharbor/trivy-adapter-photon v2.8.4 91d8e9f0b21a 2 weeks ago 464MB
    38. goharbor/notary-server-photon v2.8.4 a46f91560454 2 weeks ago 113MB
    39. goharbor/notary-signer-photon v2.8.4 da66bd8d944b 2 weeks ago 110MB
    40. goharbor/harbor-registryctl v2.8.4 805b38ca6bee 2 weeks ago 141MB
    41. goharbor/registry-photon v2.8.4 756769e94123 2 weeks ago 79MB
    42. goharbor/nginx-photon v2.8.4 375018db778b 2 weeks ago 116MB
    43. goharbor/harbor-log v2.8.4 8a2045fb24d2 2 weeks ago 124MB
    44. goharbor/harbor-jobservice v2.8.4 97808fc10f64 2 weeks ago 141MB
    45. goharbor/harbor-core v2.8.4 c26fcd0714d8 2 weeks ago 164MB
    46. goharbor/harbor-portal v2.8.4 4a8b0205c0f9 2 weeks ago 124MB
    47. goharbor/harbor-db v2.8.4 5b8af16d7420 2 weeks ago 174MB
    48. goharbor/prepare v2.8.4 bdbf974d86ce 2 weeks ago 166MB
    49. [root@node5-196 harbor]# cat /etc/docker/daemon.json
    50. {
    51. "registry-mirrors": [
    52. "http://74f21445.m.daocloud.io",
    53. "https://registry.docker-cn.com",
    54. "http://hub-mirror.c.163.com",
    55. "https://docker.mirrors.ustc.edu.cn"
    56. ],
    57. "insecure-registries": ["192.168.2.196"],
    58. "insecure-registries": ["node5-196.com"],
    59. "exec-opts": ["native.cgroupdriver=systemd"]
    60. }
    61. [root@node5-196 harbor]# tail -1 /etc/hosts
    62. 192.168.2.196 node5-196.com
    63. [root@node5-196 harbor]# systemctl restart docker
    64. [root@node5-196 harbor]# docker-compose up -d

    2.验证

    1. [root@node5-196 harbor]# docker login http://node5-196.com #进行harbor上镜像的推送和拉取验证
    2. Username: admin
    3. Password:
    4. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    5. Configure a credential helper to remove this warning. See
    6. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    7. Login Succeeded
    8. [root@node5-196 harbor]# docker tag busybox:latest node5-196.com/library/busybox:latest
    9. [root@node5-196 harbor]# docker push node5-196.com/library/busybox:latest
    10. The push refers to repository [node5-196.com/library/busybox]
    11. 3d24ee258efc: Layer already exists
    12. latest: digest: sha256:023917ec6a886d0e8e15f28fb543515a5fcd8d938edb091e8147db4efed388ee size: 528
    13. [root@node5-196 harbor]# docker pull node5-196.com/library/busybox:latest
    14. latest: Pulling from library/busybox
    15. Digest: sha256:023917ec6a886d0e8e15f28fb543515a5fcd8d938edb091e8147db4efed388ee
    16. Status: Image is up to date for node5-196.com/library/busybox:latest
    17. node5-196.com/library/busybox:latest
    18. [root@node5-196 harbor]# docker images
    19. REPOSITORY TAG IMAGE ID CREATED SIZE
    20. goharbor/harbor-exporter v2.8.4 b8d33e28ec68 2 weeks ago 97.7MB
    21. goharbor/redis-photon v2.8.4 7b7324d651ca 2 weeks ago 120MB
    22. goharbor/trivy-adapter-photon v2.8.4 91d8e9f0b21a 2 weeks ago 464MB
    23. goharbor/notary-server-photon v2.8.4 a46f91560454 2 weeks ago 113MB
    24. goharbor/notary-signer-photon v2.8.4 da66bd8d944b 2 weeks ago 110MB
    25. goharbor/harbor-registryctl v2.8.4 805b38ca6bee 2 weeks ago 141MB
    26. goharbor/registry-photon v2.8.4 756769e94123 2 weeks ago 79MB
    27. goharbor/nginx-photon v2.8.4 375018db778b 2 weeks ago 116MB
    28. goharbor/harbor-log v2.8.4 8a2045fb24d2 2 weeks ago 124MB
    29. goharbor/harbor-jobservice v2.8.4 97808fc10f64 2 weeks ago 141MB
    30. goharbor/harbor-core v2.8.4 c26fcd0714d8 2 weeks ago 164MB
    31. goharbor/harbor-portal v2.8.4 4a8b0205c0f9 2 weeks ago 124MB
    32. goharbor/harbor-db v2.8.4 5b8af16d7420 2 weeks ago 174MB
    33. goharbor/prepare v2.8.4 bdbf974d86ce 2 weeks ago 166MB
    34. busybox latest a416a98b71e2 6 weeks ago 4.26MB
    35. node5-196.com/library/busybox latest a416a98b71e2 6 weeks ago 4.26MB

    windows端作域名映射

    1. Windows PowerShell
    2. 版权所有(C) Microsoft Corporation。保留所有权利。
    3. 安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
    4. PS C:\WINDOWS\system32> cd .\drivers\etc\
    5. PS C:\WINDOWS\system32\drivers\etc> notepad .\hosts
    6. PS C:\WINDOWS\system32\drivers\etc>

     6754fac3f4944340bfae5e02c38d0e7a.png

    686bdadd63c5476a985024c87b5d7a7a.png

    e40b410eb639469085f24b8245002bad.png

    推送后的结果 

    a15de5d550554720b20c9f52c24e8c46.png

     六.集群初始化

    1.下载k8s所需软件(各个节点都做)

    1. [root@node4-193 ~]# cat << EOF> /etc/yum.repos.d/kubernetes.repo
    2. [kubernetes]
    3. name=Kubernetes
    4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    5. enabled=1
    6. gpgcheck=0
    7. repo_gpgcheck=0
    8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    9. https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    10. EOF
    11. [root@node4-193 ~]# yum install kubeadm kubectl kubelet -y
    12. [root@node1-190 ~]# systemctl start kubelet

    2.拉取所需镜像(各个节点做)

    (1)有自建harbor情况

    805896b30cc34687be269d179d26d53b.png

    1. [root@node1-190 ~]# vim dockerimages.sh
    2. #!/bin/bash
    3. images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F '/' '{print $NF}')
    4. for i in ${images}
    5. do
    6. docker pull registry.aliyuncs.com/google_containers/$i
    7. docker tag registry.aliyuncs.com/google_containers/$i node5-196.com/google_containers/$i #需要修改为刚创建的harbor的仓库地址
    8. docker push node5-196.com/google_containers/$i
    9. docker rmi registry.aliyuncs.com/google_containers/$i
    10. done
    11. [root@node1-190 ~]# docker login node5-196.com
    12. Username: admin
    13. Password:
    14. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    15. Configure a credential helper to remove this warning. See
    16. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    17. Login Succeeded
    18. [root@node1-190 ~]# bash dockerimages.sh
    19. [root@node1-190 ~]# docker images
    20. REPOSITORY TAG IMAGE ID CREATED SIZE
    21. node5-196.com/google_containers/kube-apiserver v1.28.0 bb5e0dde9054 2 weeks ago 126MB
    22. node5-196.com/google_containers/kube-scheduler v1.28.0 f6f496300a2a 2 weeks ago 60.1MB
    23. node5-196.com/google_containers/kube-controller-manager v1.28.0 4be79c38a4ba 2 weeks ago 122MB
    24. node5-196.com/google_containers/kube-proxy v1.28.0 ea1030da44aa 2 weeks ago 73.1MB
    25. node5-196.com/google_containers/etcd 3.5.9-0 73deb9a3f702 3 months ago 294MB
    26. node5-196.com/google_containers/coredns v1.10.1 ead0a4a53df8 6 months ago 53.6MB
    27. node5-196.com/google_containers/pause 3.9 e6f181688397 10 months ago 744kB

    1ecb9bb1549d4bf39497539daa22b02f.png

    (2)无harbor情况

    1. #没有自建情况
    2. [root@node1-190 ~]# vim dockerimages.sh
    3. #!/bin/bash
    4. images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F '/' '{print $NF}')
    5. for i in ${images}
    6. do
    7. docker pull registry.aliyuncs.com/google_containers/$i
    8. docker tag registry.aliyuncs.com/google_containers/$i node5-196.com/google_containers/$i
    9. docker push registry.aliyuncs.com/google_containers/$i
    10. docker rmi registry.aliyuncs.com/google_containers/$i
    11. done

    3.master节点初始化 (只在master节点做)

    执行完脚本无误后执行以下命令

    1. #master节点做,有自建harbor情况
    2. kubeadm init --kubernetes-version=1.28.2 \ #一定要是真实版本
    3. --apiserver-advertise-address=192.168.2.190 \ #自己master节点的IP
    4. --image-repository node5-196.com/google_containers \ #镜像地址,自建harbor就写harbor的地址,没有就用阿里云的
    5. --service-cidr=10.96.0.0/12 \
    6. --pod-network-cidr=10.244.0.0/16 \
    7. --ignore-preflight-errors=Swap \
    8. --cri-socket=unix:///var/run/cri-dockerd.sock
    9. #没harbor情况
    10. kubeadm init --kubernetes-version=1.28.2 \
    11. --apiserver-advertise-address=192.168.2.180 \
    12. --image-repository registry.aliyuncs.com/google_containers \
    13. --service-cidr=10.96.0.0/12 \
    14. --pod-network-cidr=10.244.0.0/16 \
    15. --ignore-preflight-errors=Swap \
    16. --cri-socket=unix:///var/run/cri-dockerd.sock

    4.执行成功后出现此界面后进行权限设置 

    dac083ab0697487885a05060111638f9.png

    1. # master节点为普通用户时
    2. [root@node1-190 ~]# mkdir -p $HOME/.kube && cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && chown $(id -u):$(id -g) $HOME/.kube/config
    3. # master节点为root用户时
    4. [root@node1-190 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

    5.各个节点根据master初始化成功后的参数来加入(各个节点都做)

    1. kubeadm join 192.168.2.190:6443 --token m5mkth.rb2e9rb3892fsu37 \
    2. --discovery-token-ca-cert-hash sha256:1209d580742d411fb4406953185ef9f27522b3ba150b8726fd39f364628d0942 \
    3. --cri-socket=unix:///var/run/cri-dockerd.sock
    4. #注意:初始化完成后弹出的加入节点命令在节点上执行时会报找不到socket文件,手动指定自己的socket文件“--cri-socket=unix:///var/run/cri-dockerd.sock”

    出现此界面即成功 

    ca701d25b9c14bf2a2c086a2a835c11f.png

    1. [root@node1-190 ~]# kubectl get nodes
    2. NAME STATUS ROLES AGE VERSION
    3. node1-190.com Ready control-plane 121m v1.28.1
    4. node2-191.com Ready <none> 104m v1.28.1
    5. node3-192.com Ready <none> 96m v1.28.1
    6. node4-193.com Ready <none> 11m v1.28.1
    7. node5-196.com Ready <none> 9s v1.28.1

    七.收尾工作(master节点做)

    1.命令补全配置

    [root@node1-190 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc && echo "source <(kubeadm completion bash)" >> ~/.bashrc && source ~/.bashrc

    2.网络配置

    (1)flannel

    链接:https://pan.baidu.com/s/1TRUyPxbBZRcyyyqojquhBw 
    提取码:wvap

    1. [root@node1-190 ~]# vim flannel.sh
    2. #!/bin/bash
    3. for i in $(grep image kube-flannel.yml | grep -v '#' | awk -F '/' '{print $NF}')
    4. do
    5. docker pull flannel/$i
    6. docker tag flannel/$i node5-196.com/google_containers/$i #需要修改为刚创建的harbor的仓库地址
    7. docker push node5-196.com/google_containers/$i
    8. docker rmi flannel/$i
    9. done
    10. #注意:如果没有自建harbor,需要将node5-196.com改为registry.aliyuncs.com,后面的内容都如此
    11. [root@node1-190 ~]# bash flannel.sh
    12. [root@node1-190 ~]# docker images
    13. REPOSITORY TAG IMAGE ID CREATED SIZE
    14. node5-196.com/google_containers/flannel v0.22.2 d73868a08083 13 days ago 70.2MB
    15. node5-196.com/google_containers/kube-apiserver v1.28.0 bb5e0dde9054 2 weeks ago 126MB
    16. node5-196.com/google_containers/kube-controller-manager v1.28.0 4be79c38a4ba 2 weeks ago 122MB
    17. node5-196.com/google_containers/kube-scheduler v1.28.0 f6f496300a2a 2 weeks ago 60.1MB
    18. node5-196.com/google_containers/kube-proxy v1.28.0 ea1030da44aa 2 weeks ago 73.1MB
    19. node5-196.com/google_containers/flannel-cni-plugin v1.2.0 a55d1bad692b 5 weeks ago 8.04MB
    20. node5-196.com/google_containers/etcd 3.5.9-0 73deb9a3f702 3 months ago 294MB
    21. node5-196.com/google_containers/coredns v1.10.1 ead0a4a53df8 6 months ago 53.6MB
    22. node5-196.com/google_containers/pause 3.9 e6f181688397 10 months ago 744kB
    23. registry.cn-hangzhou.aliyuncs.com/google_containers/pause 3.9 e6f181688397 10 months ago 744kB
    24. [root@node1-190 ~]# sed -i '/ image:/s#docker.io/flannel#node5-196.com/google_containers#' kube-flannel.yml
    25. [root@node1-190 ~]# kubectl apply -f kube-flannel.yml #应用
    26. [root@node1-190 ~]# kubectl get pod -n kube-system #验证
    27. NAME READY STATUS RESTARTS AGE
    28. coredns-6845c5578-g6dnk 1/1 Running 0 159m
    29. coredns-6845c5578-z5cj4 1/1 Running 0 159m
    30. etcd-node1-190.com 1/1 Running 0 160m
    31. kube-apiserver-node1-190.com 1/1 Running 0 160m
    32. kube-controller-manager-node1-190.com 1/1 Running 0 160m
    33. kube-proxy-5k8gg 1/1 Running 0 134m
    34. kube-proxy-b7kcg 1/1 Running 0 159m
    35. kube-proxy-h5zrz 1/1 Running 0 142m
    36. kube-proxy-h9gs5 1/1 Running 1 (35m ago) 38m
    37. kube-proxy-vfx9x 1/1 Running 0 49m
    38. kube-scheduler-node1-190.com 1/1 Running 0 160m

    (2)calico

    链接:百度网盘 请输入提取码 提取码:tswi

    1. [root@master ~]# wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml
    2. [root@master ~]# vim calico.yaml
    • 找到CLUSTER_TYPE那行,添加后两行,ens33处填写你自己的网卡名称
    1. - name: IP_AUTODETECTION_METHOD
    2. value: "interface=ens33"

    38d2fd0f8af84e09a7f9d0c225a6bda3.png

    • 将这两行取消注释,修改地址
    1. - name: CALICO_IPV4POOL_CIDR
    2. value: "10.244.0.0/16"

     6a9344826b8a4ac99f2f9de9ac79c933.png

    •  应用文件并查看
    1. [root@master ~]# kubectl apply -f calico.yaml
    2. [root@master ~]# kubectl get pods -A
    3. NAMESPACE NAME READY STATUS RESTARTS AGE
    4. kube-system calico-kube-controllers-658d97c59c-k27lr 1/1 Running 0 18s
    5. kube-system calico-node-bzq6k 1/1 Running 0 18s
    6. kube-system calico-node-dcb9c 1/1 Running 0 18s
    7. kube-system calico-node-v97ll 1/1 Running 0 18s
    8. kube-system coredns-66f779496c-nfxfr 1/1 Running 0 4m9s
    9. kube-system coredns-66f779496c-q8s6j 1/1 Running 0 4m9s
    10. kube-system etcd-k8s-master 1/1 Running 12 4m16s
    11. kube-system kube-apiserver-k8s-master 1/1 Running 12 4m16s
    12. kube-system kube-controller-manager-k8s-master 1/1 Running 13 4m16s
    13. kube-system kube-proxy-7gsls 1/1 Running 0 4m10s
    14. kube-system kube-proxy-szdqz 1/1 Running 0 2m54s
    15. kube-system kube-proxy-wgrpb 1/1 Running 0 2m58s
    16. kube-system kube-scheduler-k8s-master 1/1 Running 13 4m16s

  • 相关阅读:
    市面主流的Web大前端框架以及特性
    Java面试题:讨论单例模式的实现方式,包括懒汉式和饿汉式,并讨论线程安全问题
    Matlab基础用法
    解决vite不是内部或外部命令,也不是可运行的程序 或批处理文件。
    原来Stable Diffusion是这样工作的
    python-SQLite更新的操作没有保存
    【GNS3 GraduProj】路由器Ansible脚本测试(文件备份)
    Linux 创建的用户无法登录
    funcation_calling
    【大数据 minio】10分钟了解大数据存储的方案minio
  • 原文地址:https://blog.csdn.net/weixin_64334766/article/details/132623184