docker+jenkins+k8s集群搭建系列三、master节点安装k8s并初始化
一、安装k8s准备工作1、修改主机名我准备把写前两篇文章时候使用的这台服务器作为master服务器,所以把这台机器的主机名修改为masterhostnamectl set-hostname mastermore /etc/hostname执行后的正确结果:退出重新登陆:刚刚修改的主机名已经显示出来了。2、修改hosts文件就是在master节点上配置其他node节点的信息,让集群主服务器知道它都有
一、安装k8s准备工作
1、修改主机名
我准备把写前两篇文章时候使用的这台服务器作为master服务器,所以把这台机器的主机名修改为master
hostnamectl set-hostname master
more /etc/hostname
执行后的正确结果:
退出重新登陆:
刚刚修改的主机名已经显示出来了。
2、修改hosts文件
就是在master节点上配置其他node节点的信息,让集群主服务器知道它都有哪些小弟(从属服务器):
命令(这是一行命令,一次复制完,粘贴完):
cat >> /etc/hosts << EOF
39.105.***.167 master
101.201.***.235 node01
EOF
3、禁用swap
swapoff -a
sed -i.bak '/swap/s/^/#/' /etc/fstab
4、修改内核参数
临时修改:
sysctl net.bridge.bridge-nf-call-iptables=1
sysctl net.bridge.bridge-nf-call-ip6tables=1
修改后的正确结果:
永久修改:
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
执行后的正确结果:
sysctl -p /etc/sysctl.d/k8s.conf
5、设置k8s源
新增k8s的源:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
执行后的正确结果:
6、更新缓存
新增完源以后更新一下缓存,要不然使用的还是原来的源
yum clean all
yum -y makecache
二、安装k8s
1、查看上一步中我们设置的源里面的k8s版本都有哪些:
yum list kubelet --showduplicates | sort -r
2、安装k8s
yum install -y kubelet-1.18.1-0 kubeadm-1.18.1-0 kubectl-1.18.1-0
kubelet:运行在cluster所有节点上,负责启动POD和容器
kubeadm:用于初始化cluster
kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件
集群中master服务器的至少为两核,少了就玩不了了。
3、配置下载镜像的脚本:
cd /home/
mkdir k8s
cd k8s/
vim image.sh
打开的编辑器中放入下列内容:
#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers
version=v1.18.1
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
docker pull $url/$imagename
docker tag $url/$imagename k8s.gcr.io/$imagename
docker rmi -f $url/$imagename
done
如下图:
chmod 777 image.sh
保存。
4、下载镜像:
./image.sh
查看镜像,发现多了以下几个:
三、初始化Master
1、初始化Master
kubeadm init --apiserver-advertise-address 172.17.184.217 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.18.1
上面命令中参数取值:
–apiserver-advertise-address 172.17.184.217
黄色部分IP地址通过下面命令获取:
ip addr
kubeadm 使用 eth0 的默认网络接口 (通常是内网IP) 做为 Master 节点的 advertise address ,如果我们想使用不同的网络接口,可以使用 --apiserver-advertise-address= 参数来设置
执行正确结果:
这里如果你的服务器是1核的,你会碰到下面这个错误:
2、配置k8s环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
3、设置POD网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
执行正确结果:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
4、查看污点,删除默认污点
kubectl describe node master|grep -i taints
kubectl taint nodes master node-role.kubernetes.io/master-node/master untainted
5、查看节点情况
kubectl get node
可以看到集群中只有一个master节点,切处理ready状态。
多多练习!
下篇文章,集群中node节点安装docker和k8s,并加入集群:
更多推荐
所有评论(0)