Debian10 kubeadm安装kubernetes
机器信息主机名IP地址作用操作系统debian1192.168.1.240k8s服务器Debian10debian2192.168.1.241ansible主机Debian10debian3192.168.1.242ansible主机Debian10主机准备所有主机配置好SSH免密码登陆。非常重要(虽然ansible也支持密码登陆,但是非常麻烦)。如何设置SSH免密码可以直接百..
·
参考:
k8s官方安装引导
docker官方安装引导
机器信息
主机名 | IP地址 | 作用 | 操作系统 |
---|---|---|---|
debian | 192.168.1.240 | master | Debian10 |
debian1 | 192.168.1.241 | node | Debian10 |
debian2 | 192.168.1.242 | node | Debian10 |
所有主机操作
- 修改/etc/hostname,设置好主机名
- 修改/etc/hosts,将自己的主机名和IP地址添加进去
- 所有主机配置好SSH免密码登陆。
- 配置阿里云debian apt镜像、docker-ec镜像、kubernetes镜像
- 安装 kubeadm、kubelet 和 kubectl
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
#这一步没做
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
- 关闭防火墙
root@debian:~# ufw disable
root@debian:~# ufw status
Status: inactive
- 永久禁用交换分区
vi /etc/fstab
#注释掉下面swap这段
#/dev/mapper/debian--vg-swap_1 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
- 确保
br_netfilter
模块被加载。这一操作可以通过运行lsmod | grep br_netfilter
来完成。若要显式加载该模块,可执行sudo modprobe br_netfilter
。 - 为了让你的 Linux 节点上的 iptables 能够正确地查看桥接流量,你需要确保在你的
sysctl
配置中将net.bridge.bridge-nf-call-iptables
设置为 1。例如:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
- 设置NTP时间同步
Master(192.168.1.240)主机操作
- 设置NTP时间同步
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- kubeadm init
--apiserver-advertise-address : API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。
kubeadm init --apiserver-advertise-address=192.168.1.240 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
注:出现docker版本问题:卸载所有机器之前装的docker最新版,按错误提示安装的是19.03的.官网uninstall docker
复制出来后面节点加入k8s集群用.
- 使用kubectl工具:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装Pod网络插件(CNI)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 添加节点如集群(在debian1、debian2即192.168.1.241、192.168.1.242上执行)
kubeadm join 192.168.1.240:6443 --token 2egw0w.q07z7vomqfzgzwuj \
--discovery-token-ca-cert-hash sha256:5e110728aeb90291895842bd2ef3e85d632a3e675ef1409f817b89c870d9d585
- master机器上查看集群节点状态
kubectl get nodes
- 集群测试在Kubernetes集群中创建一个pod,验证是否正常运行:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
根据任意一台的ip:暴露端口访问如下完成
更多推荐
已为社区贡献1条内容
所有评论(0)