Centos7 部署 K8S 集群
文章目录Docker安装安装前配置修改主机名禁用swap内核参数修改修改Cgroup Driver设置kubernetes源安装K8S安装组件拉取镜像配置 Master 节点配置子节点加入集群本文介绍的是最基础的一主两从模式,因新版 K8S 不支持 docker,而业务上不想抛弃 docker,所以选用还支持 docker 版本的 K8S 进行部署Docker安装master 和 node 节点都
本文介绍的是最基础的一主两从模式,因新版 K8S 不支持 docker,而业务上不想抛弃 docker,所以选用还支持 docker 版本的 K8S 进行部署
Docker安装
master 和 node 节点都需要安装 Docker
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看docker可安装版本
yum list docker-ce --showduplicates | sort -r
安装指定版本的 Docker
yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io
启动 Docker
systemctl start docker
开机启动
systemctl enable docker
镜像加速
使用阿里云进行加速,地址:https://cr.console.aliyun.com,没有账号的同学需要注册一波
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0ibkxe0n.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
查看 Docker 版本
docker --version
尝试运行 Hello world
docker run hello-world
安装前配置
master 和 node 节点都需要配置
修改主机名
按需修改为 master 、 node01 、node02
hostnamectl set-hostname master
查看主机名
more /etc/hostname
禁用swap
临时禁用
swapoff -a
永久禁用
sed -i.bak '/swap/s/^/#/' /etc/fstab
内核参数修改
临时修改
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
修改Cgroup Driver
修改daemon.json
增加 “exec-opts”: [“native.cgroupdriver=systemd”]
{
"registry-mirrors": ["https://0ibkxe0n.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
重新加载 Docker
systemctl daemon-reload
systemctl restart docker
设置kubernetes源
**新增 K8S 源
注意: 这里的 gpgcheck 和 repo_gpgcheck 设置为1,yum -y makecache 会报错,所以设置为0,不验证
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=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 clean all
yum -y makecache
安装K8S
master 和 node 节点都需要安装
安装组件
版本查看
yum list kubelet --showduplicates | sort -r
指定版本安装
安装 kubelet 和 kubeadm 后,kubectl 也已经安装成功
yum install -y kubelet-1.14.2
yum install -y kubeadm-1.14.2
kubeadm :部署kubernetes集群的工具
kubelet :master 派到 node 节点代表,管理本机容器;一个集群中每个节点上运行的代理,它保证容器都运行在Pod中;负责维护容器的生命周期,同时也负责Volume(CSI) 和 网络(CNI)的管理
kubectl :Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署
启动kubelet
systemctl enable kubelet
systemctl start kubelet
kubelet命令补全
echo "source <(kubectl completion bash)" >> ~/.bash_profile
source .bash_profile
拉取镜像
设置镜像源
vim image.sh
#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers
version=v1.14.2
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 u+x image.sh
./image.sh
docker images
配置 Master 节点
初始化主节点
kubeadm init --apiserver-advertise-address [主节点ip] --pod-network-cidr=10.244.0.0/16
此时发现报错:You can also perform this action in beforehand using 'kubeadm config images pull
解决方案:指定国内的源
kubeadm init --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=Swap --apiserver-advertise-address [主节点ip] --pod-network-cidr=10.244.0.0/16
成功后可以看到节点入集群的命令,记住这个命令
加载环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source .bash_profile
安装flannel
若访问不了,可以先下载 kube-flannel.yml 再执行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
配置子节点加入集群
主节点操作
查看令牌
在主节点查看令牌是否过期,TTL字段是否为 invalid
kubeadm token list
生成新令牌
kubeadm token create
生成新的加密串
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
子节点操作
加入集群
kubeadm join [主节点ip]:6443 --token [令牌] --discovery-token-ca-cert-hash sha256:[加密串]
更多推荐
所有评论(0)