kubeadm搭建k8s环境

查看centos版本:rpm -q centos-release 或 cat /etc/redhat-release

准备机器(3台):cpu>=3:处理器>=1

192.168.159.223(master):192.168.159.224(node1):192.168.159.225(node2)

编写机器名设置:

vi /etc/hosts

输入:

192.168.159.223 master

192.168.159.224 node1

192.168.159.225 node2

保存退出并重启机器——>reboot

关闭防火墙:(所有机器执行)

       systemctl stop firewalld && systemctl disabled firewalld

关闭selinux:(所有机器执行)

       临时关闭:setenforce 0

       永久关闭:

vi /etc/selinux/config

       将SELINUX=enforcing改为SELINUX=disabled

保存后退出;通过getenforce查看状态

关闭交换区swap(虚拟内存):

       查看:free g或 free

       关闭:swapoff -a

      永久关闭: sudo sed -i 's/.*swap.*/#&/' /etc/fstab

创建密钥:互相免密访问:

       //生成秘钥和私钥

ssh-keygen

       执行ssh-copy-id将公钥复制到节点机

       //将秘钥和私钥复制到其他节点,这样就可以相互免密登录了

       ssh-copy-id root@192.168.159.222

       测试访问:

       ssh root@192.168.159.222

       退出:exit

安装同步时钟:

yum install -y ntpdate

      

ntpdate time windows.com

内核调整,将桥接的ipv4流量传递到iptables的链

       配置系统内核参数使流过网桥的流量也进入iptables/netfilter框架中

       vi /etc/sysctl.d/k8s.conf

      net.bridge.bridge-nf-call-ip6tables = 1

      net.bridge.bridge-nf-call-iptables = 1

 

 执行:立即生效:sysctl -p

 注:如果上面执行sysctl -p时报错,可以先执行一下modprobe br_netfilter,然后再重新执行sysctl -p

安装kubernetes和docker

       先添加kubernetes和docker的yum源

       cd  /etc/yum.repos.d/

vi kubernetes.repo

----------------------------------------------------------------------------

添加内容如下:

[kubernetes]

name=Kubernetes repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

enabled=1

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker  kubelet  kubeadm  kubelectl

yum install docker kubelet kubeadm kubectl 

启动docker
       配置docker国内镜像:

       vi /etc/docker/daemon.json

       添加内容如下:

          {

        "registry-mirrors": ["https://dlbpv56y.mirror.aliyuncs.com"],

        "registry-mirrors": ["http://04be47cf.m.daocloud.io"],

        "insecure-registries": ["192.168.159.223:5000"]

        }

       执行:systemctl daemon-reload

       启动docker:systemctl enable docker && systemctl start docker

       查看状态:systemctl status docker

启动kubelet:(注:在没有进行init操作前,kubelet无法正常启动)

systemctl enable kubelet && systemctl start kubelet

查看状态:systemctl status kubelet

启动kubernetes集群:

       查看kubelet版本:kubelet --version

kubeadm init \

--apiserver-advertise-address=192.168.159.223 \

--image-repository registry.aliyuncs.com/google_containers \

--kubernetes-version v1.18.0 \

--service-cidr=10.96.0.0/12 \

--pod-network-cidr=10.244.0.0/16

kubeadm init --apiserver-advertise-address=192.168.159.223 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

已实践:kubeadm init --apiserver-advertise-address=192.168.159.223 --kubernetes-version=v1.18.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

--image-repository registry.aliyuncs.com/google_containers此处若是失败;可以本地拉取镜像,参考最后的网址

执行完毕;

继续执行(分步执行-主节点):

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

添加节点:(子节点执行)

kubeadm join 192.168.159.223:6443 --token 4ejzk4.ko1ooqlywpib29ie --discovery-token-ca-cert-hash sha256:007dbb2637d38a2845cc6b43767342c69161d3544c96e34553045f23736dd58f

查看:kubelet get nodes

         Kubelet get pods

安装网络插件:

       安装weave网络插件

       或者

       安装calico插件

        kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

子节点报错:

Unable to update cni config: no networks found in /etc/cni/net.d

vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

添加

Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/ --cni-bin-dir=/opt/cni/bin"(不一定有用啊,试过了)

再次进行查看:

       kubectl get nodes

       kubectl get pods

运行一个应用:

       master节点执行:

              kubectl create deployment nginx --image=nginx

              kubectl expose deployment nginx --port=80 --type=NodePort

              kubectl get pods,svc

浏览器访问:ip:PORT(S)

 

参考:https://blog.csdn.net/hanlaipeng11/article/details/83246822(推荐)

           https://blog.csdn.net/allensandy/article/details/101470532

           https://www.cnblogs.com/liweiming/articles/12603624.html

           https://www.cnblogs.com/kingle-study/p/11686345.html

           https://www.cnblogs.com/double-dong/p/11483670.html

差不多就看这几个弄得,希望有所帮助

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

启橙小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值