centos7安装k8s部署系统
centos7安装k8s步骤
centos7安装k8s部署系统
一、环境准备
标题1、设置唯一的静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将 BOOTPROTO 改为static
BOOTPROTO=static
ONBOOT=yes
添加ip、网关和DNS地址,网关可以通过命令:“netstat -rn” 查看
IPADDR=192.168.253.131
GATEWAY=192.168.253.2
DNS1=8.8.8.8
标题2、时间同步
k8s要求集群中的节点必须精确一致,所以直接使用chronyd从网络同步时间
启动chronyd服务
systemctl start chronyd
设为开机自启
systemctl enable chronyd
查看当前时间
date
标题3、重新设置主机名
在k8s中, 主机名不能重复,所以将其设为不一样的节点
主节点
hostnamectl set-hostname master
工作节点1
hostnamectl set-hostname node1
工作节点2
hostnamectl set-hostname node2
标题4、设置hosts域名映射
在所有节点上执行以下命令,在hosts文件中添加一个指向主节点的域名,这里不要照抄,要将ip改成你自己的ip
在所有节点执行
echo “10.0.2.15 cluster-endpoint” >> /etc/hosts
在初始化的时候需要用到master,所以需要hosts加入以下配置,对应的主机名要和上面第三步的一样
#以下操作只在主节点操作
echo “10.0.2.15 master” >> /etc/hosts
echo “192.168.253.132 node1” >> /etc/hosts
echo “192.168.253.133 node2” >> /etc/hosts
标题5、禁用SELINUX
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
标题6、关闭swap分区
swapoff -a
sed -ri ‘s/.swap./#&/’ /etc/fstab
标题7、允许 iptable 检查桥接流量
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
标题8、禁用iptables 和 防火墙服务
关闭iptables,没这个服务可忽略
systemctl stop iptables
systemctl disable iptables
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
标题9、配置ipvs功能
1.安装ipset和ipvsadm
yum install ipset ipvsadmin -y
2.添加需要加载的模块写入脚本文件
cat < /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe – ip_vs
modprobe – ip_vs_rr
modprobe – ip_vs_wrr
modprobe – ip_vs_sh
modprobe – nf_conntrack_ipv4
EOF
3.为脚本添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
4.执行脚本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules
5.查看对应的模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
标题二、安装docker
标题1、卸载原docker
yum list installed | grep docker
yum -y remove docker*
docker -y remove containerd.io.x86_64
rm -rf /var/lib/docker
下载wget
yum install wget -y
下载yum-utils
yum install -y yum-utils
下载net-tools
yum install net-tools -y
标题2、使用国内的阿里云镜像仓
yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
标题3、安装指定版本的docker
yum install
docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 -y
4、启动docker
systemctl enable docker --now
systemctl start docker
systemctl restart docker
5、使用systemd代替cgroupfs、以及配置仓库镜像地址
docker在默认情况下使用Cgroup Driver 为cgroupfs,而k8s推荐使用systemd来代替cgroupfs,所以在/etc/docker/daemon.json内加入以下内容,如果没有这个文件,手动创建一个
vi /etc/docker/daemon.json
加入以下内容
{
“exec-opts”: [“native.cgroupdriver=systemd”]
}
配置文件生效并重启
systemctl daemon-reload
systemctl restart docker
systemctl status docker
三、安装k8s三大件
以下操作需要在所有的节点上进行
1、 配置源
cat < /etc/yum.repos.d/kubernetes.repo
[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
2、安装三大件
yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
–disableexcludes=kubernetes表示排除禁用
3、添加配置
vi /etc/sysconfig/kubelet
在/etc/sysconfig/kubelet文件中加入以下内容
KUBELET_CGROUP_ARGS=“–cgroup-driver=systemd”
或者修改
#或者修改
vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#或者修改
vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
#加入/修改
Environment=“KUBELET_KUBECONFIG_ARGS=–bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --cgroup-driver=cgroupfs”
#配置文件生效并重启
systemctl daemon-reload
systemctl restart kubelet
4、启动kubelet
开机自动启动
systemctl enable --now kubelet
systemctl restart kubelet
查看驱动
#查看docker cgroup驱动
docker info|grep Driver
#查看kubelet cgroup驱动
systemctl show --property=Environment kubelet | cat
四、使用kubeadm引导集群
理论上以下操作只需要在master节点进行
1、下载各个机器需要的集群
sudo tee ./images.sh <<-‘EOF’
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in
i
m
a
g
e
s
[
@
]
;
d
o
d
o
c
k
e
r
p
u
l
l
r
e
g
i
s
t
r
y
.
c
n
−
h
a
n
g
z
h
o
u
.
a
l
i
y
u
n
c
s
.
c
o
m
/
l
f
y
k
8
s
i
m
a
g
e
s
/
{images[@]} ; do docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/
images[@];dodockerpullregistry.cn−hangzhou.aliyuncs.com/lfyk8simages/imageName
done
EOF
2、设置可执行权限并执行脚本
chmod +x ./images.sh && ./images.sh
五、主节点环境准备
1、初始化主节点
使用init组件快速初始化一个主节点
kubeadm init
–apiserver-advertise-address=10.0.2.15
–control-plane-endpoint=cluster-endpoint
–image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images
–kubernetes-version v1.20.9
–service-cidr=10.96.0.0/16
–pod-network-cidr=192.168.0.0/16
如果报错
重置
kubeadm reset
清楚残留文件
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/*
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/*
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker
然后再初始化
2、初始化后续
根据上面的提示继续进行配置,如果需要使用集群,还需要执行以下命令,
记住,这里的命令是从第一步初始化成功后拷贝过来的命令,应该拷贝你的命令来执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown
(
i
d
−
u
)
:
(id -u):
(id−u):(id -g) $HOME/.kube/config
work节点加入集群(安装令牌,只在工作节点执行)
如果要在集群中加入工作节点,那么需要在工作节点执行以下命令,这些是集群的令牌
记住,这里的命令是从第一步初始化成功后拷贝过来的命令,应该拷贝你的命令来执行
以下操作只在work节点执行即可
kubeadm join cluster-endpoint:6443 --token ppwpeo.286k19gvjdlelen8
–discovery-token-ca-cert-hash sha256:1e402bf817b1f8f2ade7aeb0a702c389903a96e72724517409793e7b4904ee72
加入后我们在主节点执行kubectl get nodes命令,可以看到,除了主节点之外,还有2个工作节点,在看它们的状态都是NotReady(未准备好)的,因为还没安装网络插件,这刚好是我们下一步要做的事;
查看nodes
kubectl get nodes
这个命令一定要在主节点执行才能生成令牌
kubeadm token create --print-join-command
标题3、安装pod网络插件(只在主节点执行)
以下操作只在master节点执行即可
下载 calico-etcd.yaml 到当前目录
wget https://docs.projectcalico.org/v3.10/manifests/calico.yaml
加载网络插件
kubectl apply -f calico.yaml
kubectl get nodes
如果不能下载
直接加载/k8stest文件夹下的calico.yaml
3、加入k8stest 文件夹
添加777权限
4、加载可视化
#进入文件夹
cd /k8stest
加载
kubectl apply -f k8s-dashboard.yaml
//创建一个dashboard的管理用户
kubectl create serviceaccount dashboard-admin -n kube-system
//将创建的dashboard用户绑定为管理用户
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
//获取刚刚创建的用户对应的token名称
kubectl get secrets -n kube-system | grep dashboard
dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 12s
//查看token的详细信息
kubectl describe secrets -n kube-system dashboard-admin-token-ntbtb
查看kubetl 日志
journalctl -u kubelet --no-pager
单节点部署需要去除污点
kubectl describe nodes master |grep Taints
kubectl taint node master gameble-
登录docker仓库(需要生成)
docker login -u 账号 -p 密码 swr.cn-south-1.myhuaweicloud.com
生成kubectl 密钥
kubectl create secret docker-registry regsecret --docker-server=swr.cn-south-1.myhuaweicloud.com --docker-username=账号 --docker-password=密码
删除密钥
kubectl delete -n my_name_space secret secret_name
全部启动
#进入文件夹
cd /k8stest/deploy
#启动
kubectl apply -f .
全部删除
kubectl delete -f .
redis 加载字符
#加入内容
set ‘key’ ‘value’
#查看内容
get ‘key’
更多推荐
所有评论(0)