k8s搭建1.23版本

打印 上一主题 下一主题

主题 1589|帖子 1589|积分 4767

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、前期准备



  • 以下操纵所有主机都要运行的
1、关闭防火墙和selinux

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service
  3. setenforce 0
  4. vim /etc/selinux/config
复制代码
2、关闭交换分区



  • 假如有交换分区的话,关掉,不需要交换分区(占用磁盘)
3、修改主机名和免密登录

  1. [root@localhost ~]# hostnamectl set-hostname master
  2. [root@localhost ~]# bash
  3. [root@master ~]#
  4. [root@localhost ~]# hostnamectl set-hostname node1
  5. [root@localhost ~]# bash
  6. [root@node1 ~]#
  7. [root@master ~]# echo "192.168.200.10 master" >> /etc/hosts
  8. [root@master ~]# echo "192.168.200.11 node1" >> /etc/hosts
  9. [root@master ~]# scp /etc/hosts root@node1:/etc/host
  10. host.conf    hostname     hosts        hosts.allow  hosts.deny   
  11. [root@master ~]# scp /etc/hosts root@node1:/etc/hosts
  12. The authenticity of host 'node1 (192.168.200.11)' can't be established.
  13. ECDSA key fingerprint is SHA256:ZJD5+SX9K5TIrhruYNsYjv8xCrndEXt4yrdCt077ejw.
  14. ECDSA key fingerprint is MD5:bc:c9:43:fd:b0:19:f8:5e:15:a0:14:f2:ac:17:13:ff.
  15. Are you sure you want to continue connecting (yes/no)? yes
  16. Warning: Permanently added 'node1,192.168.200.11' (ECDSA) to the list of known hosts.
  17. root@node1's password:
  18. hosts                                                      100%  201   267.3KB/s   00:00   
  19. [root@master ~]# ssh-keygen
  20. Generating public/private rsa key pair.
  21. Enter file in which to save the key (/root/.ssh/id_rsa):
  22. Enter passphrase (empty for no passphrase):
  23. Enter same passphrase again:
  24. Your identification has been saved in /root/.ssh/id_rsa.
  25. Your public key has been saved in /root/.ssh/id_rsa.pub.
  26. The key fingerprint is:
  27. SHA256:I8nt/Be5ue9Rq2/u/zYvYCSgAQEHR15sYvwpIcFkqwE root@master
  28. The key's randomart image is:
  29. +---[RSA 2048]----+
  30. |Eo***+.          |
  31. |..o==.+ .        |
  32. |. .o.= + .       |
  33. | o  ..+o  . .    |
  34. |.    .+ S  o .  .|
  35. |       + .  =  ..|
  36. |        o  . =.. |
  37. |         .  + o+.|
  38. |          ...=B*O|
  39. +----[SHA256]-----+
  40. [root@master ~]# ssh-copy-id root@node1
  41. /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
  42. /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
  43. /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
  44. root@node1's password:
  45. Number of key(s) added: 1
  46. Now try logging into the machine, with:   "ssh 'root@node1'"
  47. and check to make sure that only the key(s) you wanted were added.
  48. [root@master ~]# ssh root@node1
  49. Last login: Sun Nov 17 13:33:50 2024 from 192.168.200.1
  50. [root@node1 ~]#
复制代码
4、内核参数

  1. [root@master yum.repos.d]# cat /etc/sysctl.d/k8s.conf
  2. net.bridge.bridge-nf-call-ip6tables = 1  # 启用对ipv6流量的桥接网络数据包的iptables的过滤功能,走iptables的规则
  3. net.bridge.bridge-nf-call-iptables = 1  # 对ipv4的iptables的过滤功能
  4. net.ipv4.ip_forward = 1    # 启动对ipv4数据包的转发功能;pod想要访问外网或者访问另外一个Pod,这个功能必须打开,否则系统只会管自己,不会帮别人转发数据包,就是只会管理发给自己的数据包的请求,不是自己的请求不会管
  5. modprobe br_netfilter  # 加载linux内核模块
  6. [root@master yum.repos.d]# sysctl -p /etc/sysctl.d/k8s.conf   # 加载指定配置文件的参数值,立即生效
  7. net.bridge.bridge-nf-call-ip6tables = 1
  8. net.bridge.bridge-nf-call-iptables = 1
  9. net.ipv4.ip_forward = 1
复制代码
5、安装docker



  • 有一个重要的点就是kubelet利用的是systemd驱动,docker利用的cgroupfs驱动,有冲突
  1. yum -y install  yum-utils
  2. yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. yum -y install docker-ce
  4. # docker拉取的镜像仓库地址
  5. [root@master /]# cat /etc/docker/daemon.json
  6. {
  7.   "registry-mirrors": ["https://registry.aliyuncs.com"],
  8.   "exec-opts": ["native.cgroupdriver=systemd"]   # 驱动设置为systemd
  9. }
  10. systemctl enable docker --now
复制代码
6、安装k8s源

  1. [root@master /]# cat > /etc/yum.repos.d/kubernetes.repo << EOF
  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 https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  9. > EOF
复制代码
2、安装

1、安装k8s软件包



  • 所有主机都要安装
  1. # 指定版本
  2. [root@master ~]# yum -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
  3. # 列出所安装需要的核心镜像
  4. [root@master ~]# kubeadm config images list
  5. I1117 14:17:57.019109    2908 version.go:255] remote version is much newer: v1.31.2; falling back to: stable-1.23
  6. k8s.gcr.io/kube-apiserver:v1.23.17   # 但是这些镜像国内访问不了,使用阿里云上面的镜像即可
  7. k8s.gcr.io/kube-controller-manager:v1.23.17
  8. k8s.gcr.io/kube-scheduler:v1.23.17
  9. k8s.gcr.io/kube-proxy:v1.23.17
  10. k8s.gcr.io/pause:3.6
  11. k8s.gcr.io/etcd:3.5.1-0
  12. k8s.gcr.io/coredns/coredns:v1.8.6
  13. # 开机自启,等会后面会自己启动的
  14. [root@master ~]# systemctl enable kubelet
  15. Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
  16. # 阿里云仓库地址
  17. https://registry.aliyuncs.com/google_containers
复制代码
2、初始化k8s

  1. kubeadm init --apiserver-advertise-address=192.168.200.10 --kubernetes-version=v1.23.0 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
  2. --apiserver-advertise-address # 控制节点的ip地址
  3. --kubernetes-version=v1.23.0 # k8s的版本
  4. --service-cidr   # 指定使用的网络地址,dns和svc的范围,会从这个里面进行分配
  5. --pod-network-cid  # 指定pod分配的地址范围
  6. --image-repository # 指定拉取控制平面组件的镜像仓库
  7. # 主要就是安装和配置api server,controller manager,scheduler等组件
  8. # 生成一个config文件
  9. # 还有加入的命令,就是那个join
复制代码
3、安装calico网络插件

  1. wget  https://docs.projectcalico.org/v3.21/manifests/calico.yaml
  2. # 修改里面的配置,否则会警告,当然也可以不修改
  3. policy/v1beta1 改成policy/v1
  4. # 因为高版本的k8s逐步的启用这个api了
  5. kubectl -f https://docs.projectcalico.org/v3.21/manifests/calico.yaml
复制代码
4、查抄

  1. [root@master ~]# kubectl get pod -A
  2. NAMESPACE     NAME                                       READY   STATUS    RESTARTS      AGE
  3. default       busybox                                    1/1     Running   0             32m
  4. kube-system   calico-kube-controllers-7f76d48f74-5zfg9   1/1     Running   0             44m
  5. kube-system   calico-node-jnqkl                          1/1     Running   0             44m
  6. kube-system   calico-node-mwhnh                          1/1     Running   0             44m
  7. kube-system   coredns-6d8c4cb4d-kt7df                    1/1     Running   0             52m
  8. kube-system   coredns-6d8c4cb4d-rsr6j                    1/1     Running   0             52m
  9. kube-system   etcd-master                                1/1     Running   1 (41m ago)   52m
  10. kube-system   kube-apiserver-master                      1/1     Running   1 (41m ago)   52m
  11. kube-system   kube-controller-manager-master             1/1     Running   1 (41m ago)   52m
  12. kube-system   kube-proxy-7cwv7                           1/1     Running   1 (41m ago)   51m
  13. kube-system   kube-proxy-j5fph                           1/1     Running   1 (41m ago)   52m
  14. kube-system   kube-scheduler-master                      1/1     Running   1 (41m ago)   52m
  15. [root@master ~]# kubectl get node
  16. NAME     STATUS   ROLES                  AGE   VERSION
  17. master   Ready    control-plane,master   53m   v1.23.0
  18. node1    Ready    <none>                 51m   v1.23.0
  19. # 当然,也可以创建一个pod出来,测试能否访问外网
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表