K8s 1.19.2开发环境搭建实践记录
准备3台虚拟机,centos7 。Cpu 2核,内存2G。Centos镜像下载http://mirrors.163.com/centos/,最小安装就可以了。一、环境设置(所有机器都设置)#关闭防火墙systemctldisablefirewalldsystemctlstopfirewalld#关闭selinux#临时禁用selinuxsetenforce0#永久关闭修改/etc/sysconfi
准备3台虚拟机,centos7 。Cpu 2核,内存2G。Centos镜像下载http://mirrors.163.com/centos/,最小安装就可以了。
一、环境设置(所有机器都设置)
# 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
# 关闭selinux
# 临时禁用selinux
setenforce 0
# 永久关闭 修改/etc/sysconfig/selinux文件设置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 禁用交换分区
swapoff -a
# 永久禁用,打开/etc/fstab注释掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
# 修改内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
#统一时区,为上海时区
ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
bash -c "echo 'Asia/Shanghai' > /etc/timezone"
#统一使用阿里服务器进行时间更新
yum install -y ntpdate #安装ntpdate工具
ntpdate ntp1.aliyun.com #更新时间
安装docker:
1、删除原有的docker组件
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2、配置系统docker源
sudo yum install -y yum-utils device-mapper-persistent-data lvm2## 注意:此处更换了阿里的源,适用国内用户
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、查看docker安装列表,选择并安装
sudo yum list docker-ce --showduplicates# 此处直接安装最新版本的docker-ce
sudo yum install -y docker-ce
# 注:如果要安装指定的版本可以参考下边的命令
sudo yum install -y docker-ce-3:19.03.8-3.el7.x86_64
4、启动docker
sudo systemctl enable docker && systemctl start docker
5、更换镜像仓库源 阿里云docker仓库
# 进入阿里云帐号(https://account.aliyun.com/login/login.htm),依次进入:控制台——容器镜像服务(可以搜索到)——镜像中心——镜像加速器。镜像加速器中获取到加速器地址: "https://xxxxxxx.mirror.aliyuncs.com"
#linux下默认文件为/etc/docker/daemon.json,添加下列仓库
$ sudo vi /etc/docker/daemon.json
{"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
# 重启docker使其生效
$ sudo systemctl restart docker
安装K8S组件:
1、更新K8S源
$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2、 kubelet、kubeadm、kubectl
$ yum install -y kubelet kubeadm kubectl# 启动kubelet 服务
$ systemctl enable kubelet && systemctl start kubelet
host配置
#每台机器都执行
cat >> /etc/hosts << EOF
192.168.19.19 master01
192.168.19.23 node01
192.168.19.18 node02
EOF
查看执行结果:cat /etc/hosts
二、配置master服务器
配置k8s初始化文件
master节点下 生成默认配置文件
$ kubeadm config print init-defaults > init-kubeadm.conf
修改init-kubeadm.conf 主要参数
#imageRepository: k8s.gcr.io 更换k8s镜像仓库
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: v1.19.2
# localAPIEndpointc,advertiseAddress为master-ip ,port默认不修改
localAPIEndpoint:
advertiseAddress: 192.168.19.19 #此处为master的IP
bindPort: 6443
# 配置子网络
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
podSubnet: 10.244.0.0/16 #添加pod子网络,使用的是flannel网络
拉取下载k8s组件
#查看安装时需要的镜像文件列表
kubeadm config images list --config init-kubeadm.conf
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.2
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.2
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.2
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.2
registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
#下载,根据配置文件进行镜像下载,如果此处下载比较缓慢可以考虑更换配置文件中的imageRepository参数
$ kubeadm config images pull --config init-kubeadm.conf
初始化k8s
#如果kubeadm init过了,此时需要加个参数来忽略到这些:--ignore-preflight-errors=all
$ kubeadm init --config init-kubeadm.conf
# 启动后可以根据提示执行下列命令,并记录john token
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 此处要记录下 join语句,如果join token忘记,则需要执行下边命令重新生成
$ kubeadm token create --print-join-command
flannel网络配置
- 通过IPAddress.com 查询真实IP,输入raw.githubusercontent.com查询到真实IP地址(例如:199.232.68.133)
- # 添加到hosts中,
$ sudo vi /etc/hosts
199.232.68.133 raw.githubusercontent.com
3、下载 配置文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4、创建flannel
$ kubectl apply -f kube-flannel.yml
三、配置node
node节点 初始化内容
#拷贝 master机器上 $HOME/.kube/config 到node节点上
scp $HOME/.kube/config root@node01:~/
scp $HOME/.kube/config root@node02:~/
#分别在node01和node02上执行下边命令
#不然执行kubectl 会报错#error: no configuration has been provided, try setting KUBERNETES_MASTER environment variable
mkdir -p $HOME/.kube
sudo mv $HOME/config $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
节点注册方法
1:直接使用命令节点注册
kubeadm join 192.168.19.19:6443 --token c3413u.owtffs6sx07eam24 --discovery-token-ca-cert-hash sha256:efad9b8cc43c8f759fa5828c2ef8dbd47d2f96f21a7238c8f2bbdc2927336fbf
# token加入语句忘记了可以在master上使用下边命令进行生成
$ kubeadm token create --print-join-command
添加flannel网络
1、 通过IPAddress.com 查询真实IP,输入raw.githubusercontent.com查询到真实IP地址(例如:199.232.68.133)
2、# 添加到hosts中,
$ sudo vi /etc/hosts
199.232.68.133 raw.githubusercontent.com
3、下载 配置文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4、创建flannel
$ kubectl apply -f kube-flannel.yml
# 查看节点添加状况
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready master 4d17h v1.19.2
node01 Ready <none> 4d17h v1.19.2
node02 Ready <none> 4d17h v1.19.2
主要参考:
1、https://www.cnblogs.com/climbsnail/p/12821799.html#jump
更多推荐
所有评论(0)