欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

k8s学习(一) 虚拟机centos7 使用kubeadm安装k8s:1.15.0(多节点)

程序员文章站 2022-03-07 11:09:12
...

1.虚拟机配置

角色 文字中简称 基本配置 ip 安装的组件 备注
k8s-master 主节点 2核,2G 192.168.0.108 docker, <kubeadm,kubectl, kubelet> ip使用的是静态设置的ip
k8s-node1 子节点 2核,2G 192.168.0.109 docker, <kubeadm,kubectl, kubelet> ip使用的是静态设置的ip

2.节点环境准备:(所有节点都要操作)

1.配置hosts文件

cat >> /etc/hosts<<EOF
192.168.0.108 k8s-master
192.168.0.109 k8s-node1
EOF

2.关闭防火墙

sudo systemctl stop firewalld #临时关闭

sudo systemctl disable firewalld #然后reboot 永久关闭

sudo systemctl status  firewalld #查看防火墙状态

3.禁用swap内存交换

第一步 关闭swap分区:
swapoff -a

第二步修改配置文件 - /etc/fstab
#删除swap相关行 
/mnt/swap swap swap defaults 0 0 #这一行或者注释掉这一行

第三步确认swap已经关闭
free -m
	若swap行都显示 0 则表示关闭成功

第四步调整 swappiness 参数
echo 0 > /proc/sys/vm/swappiness # 临时生效

vi /etc/sysctl.conf # 永久生效
#修改 vm.swappiness 的修改为 0
vm.swappiness=0
sysctl -p # 使配置生效

4.配置iptable管理ipv4/6请求

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

5.安装docke-rce-18.06

#如果未按照wget命令
yum install wget

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum -y install docker-ce-18.06.1.ce-3.el7

systemctl enable docker && systemctl start docker #启动并设置开机启动

docker --version #查看是否安装成功

6.配置docker启动参数

#如果未按照wget命令
 cat  > /etc/docker/daemon.json  <<EOF
{
  "registry-mirrors": ["https://yywkvob3.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

#重启docker
systemctl  daemon-reload

systemctl  restart docker

7.安装kubeadm套件

#如果未按照wget命令
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

systemctl enable kubelet

3.集群配置:(主节点操作)

1.设置集群主节点配置

kubeadm init \
  --apiserver-advertise-address=192.168.0.108 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.15.0 \
  --service-cidr=10.1.0.0/16 \
  --pod-network-cidr=10.244.0.0/16
#192.168.0.108 替换为主节点ip
注意事项:生成的token需要保留下来,用于子节点添加的凭证
例如:kubeadm join 192.168.0.108:6443 --token 5pwx77.ahs98fxdfpdwpjf1 \
    --discovery-token-ca-cert-hash sha256:d81f347530ad3e1b03cfdf53666a20b62ab09f1ce3d3ccf2a437ee33805f5183

#配置环境变量
mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

2.部署flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
#如果连接不了,可网上下载一个kube-flannel.yml文件
 
kubectl get nodes #查看节点信息
注意事项:flannel没下载完成前,主节点会显示是NoReady状态,请耐心等待一会,切勿关机
kubectl get pods -n kube-system  #查看目前pod
kubectl get pods,svc  -n kube-system

kube-flannel.yml文件

4.子节点加入集群:(子节点操作)

1.将主节点获取到的token信息,在子节点中执行

kubeadm join 192.168.0.108:6443 --token 5pwx77.ahs98fxdfpdwpjf1 \
    --discovery-token-ca-cert-hash sha256:d81f347530ad3e1b03cfdf53666a20b62ab09f1ce3d3ccf2a437ee33805f5183
    
注意事项:在执行这个语句后,主节点会有一个加载资源的过程,这个时候使用命令查看
kubectl get nodes #查看节点信息、
子节点可能是NoReady状态,请耐心等待一会,切勿关机

4.测试集群是否正常:(主节点操作)

查看所有节点是否是Ready状态
kubectl get nodes #查看节点信息

部署一个nginx 应用
kubectl create deployment nginx --image=nginx

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

kubectl get pod,svc

在浏览器中访问:节点ip:service暴露的端口,来验证