部署Kubernetes

需要三台虚拟机

192.168.0.125

192.168.0.124

192.168.0.123

进入到kubernetes.io网站

查看三台主机的uuid

root@server1:~# cat /sys/class/dmi/id/product_uuid

三个主机名也不能一样哦!

查看一下我们要让放行的port

三台主机都做:

放行的端口号太多我们可以把防火墙关掉

root@server1:~# systemctl stop ufw && systemctl disable ufw

root@server2:~# systemctl stop ufw && systemctl disable ufw

root@server3:~# systemctl stop ufw && systemctl disable ufw

三台主机关闭swap分区

root@server1:~# vim /etc/sysctl.conf

添加参数:

net.ipv4.ip_forward=1

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

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

vm.swappiness = 0

保存退出

刷新一下

root@server1:~# sysctl -p

root@server1:~# vim /etc/fstab   #注释掉你的swap分区  不能使用scp拷贝到其他的虚拟机里   因为他们的uuid不一样所以不能拷贝

root@server1:~# swapoff -a    ##临时关闭

root@server1:~# free -m

三台都做删除docker引擎

root@server1:~# apt remove docker* -y

root@server1:~# systemctl stop docker && systemctl disable docker

三台主机都安装containerd

root@server1:~# apt update

root@server1:~# apt install containerd.io -y

三台主机都下载模块

root@server1:~# apt install containerd.io -y

然后添加ipvs的规则

root@server1:~# mkdir -p /etc/sysconfig/modules

root@server1:~# vim /etc/sysconfig/modules/ipvs.modules

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack

保存退出

root@server1:~# chmod 755 /etc/sysconfig/modules/ipvs.modules

root@server1:~# bash /etc/sysconfig/modules/ipvs.modules

root@server1:~# lsmod | grep -e ip_vs -e nf_conntrack

root@server1:~# modprobe overlay

root@server1:~# modprobe br_netfilter

三台主机都做默认生成文件  自动生成

root@server1:~# containerd config default

三台主机都做替换到我们刚刚生成的那个文件

root@server1:~# containerd config default | sudo tee /etc/containerd/config.toml

三台主机都做生成了之后我们去修改

root@server1:~# vim /etc/containerd/config.toml

registry.aliyuncs.com/google_containers/pause:3.6

保存退出

我们启动containerd

root@server1:~# systemctl restart containerd.service

查看一下状态

root@server1:~# systemctl status containerd.service

上面的所有完成之后我们开始安装kubernetes

进去到阿里镜像站

https://developer.aliyun.com/mirror

oot@server1:~# apt-get update && apt-get install -y apt-transport-https

root@server1:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

root@server1:~# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list

> deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

> EOF

root@server1:~# apt-get update

root@server1:~# apt-get install -y kubelet kubeadm kubectl

安装完成之后我们配置kubernetes

root@server1:~# kubeadm version

三台都做:我们使用k8s的时候没有tab键 将命令加入到bash中

root@server1:~# source <(kubeadm completion bash)

root@server1:~# source <(kubectl completion bash)

root@server1:~# source <(crictl completion bash)

三台主机上都做:上面的临时生效,现在我们让他永久生效

root@server1:~# vim .bashrc

在配置文件最后添加:

source <(kubeadm completion bash)

source <(kubectl completion bash)

source <(crictl completion bash)

保存退出

我们在crictl ps的时候会有这个错误,我们去修改他:

root@server1:~# ll /run/containerd/containerd.sock

/run/containerd/containerd.sock

root@server1:~# crictl config runtime-endpoint unix:///run/containerd/containerd.sock

然后修改配置文件

root@server1:~# vim /etc/crictl.yaml

runtime-endpoint: unix:///run/containerd/containerd.sock

image-endpoint: unix:///run/containerd/containerd.sock

timeout: 10

debug: false

pull-image-on-create: false

disable-pull-on-run: false

root@server1:~# crictl config runtime-endpoint unix:///run/containerd/containerd.sock

没问题之后我们去初始化

已修改配置文件的方式去初始化它

root@server1:~# kubeadm config print init-defaults > init.yaml

下面进行初始化

root@server1:~# kubeadm init --config=init.yaml

然后去后两台上做加入master(主机1)的节点

kubeadm join 192.168.0.125:6443 --token abcdef.0123456789abcdef \

        --discovery-token-ca-cert-hash sha256:2df125531339a965260ecbc1d635af005e3d40a1ad0f7db344c1077e0dfcd892

查看一下

root@server1:~# kubectl get nodes

全部执行一遍:

oot@server1:~# mkdir -p $HOME/.kube

root@server1:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

root@server1:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config

root@server1:~# export KUBECONFIG=/etc/kubernetes/admin.conf

然后我们去下载一个网络 因为kubernetes的网络是独立的

Installing Addons | Kubernetes

选择calico网络

root@server1:~# curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O

root@server1:~# vim calico.yaml

查看我们的namespaces是否下载成功

root@server1:~# kubectl get pod --all-namespaces

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值