【愚公系列】2022年04月 Kubernetes容器基本环境的配置

举报
愚公搬代码 发表于 2022/04/24 23:48:04 2022/04/24
【摘要】 前言软件版本:操作系统:ubuntu22.04容器引擎:Docker 20.10.14Kubernetes:v1.23.6K8S官网:https://kubernetes.io/docs/setup/最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability...

前言

软件版本:

  • 操作系统:ubuntu22.04
  • 容器引擎:Docker 20.10.14
  • Kubernetes:v1.23.6

K8S官网:https://kubernetes.io/docs/setup/

最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

一、集群规划

IP地址 功能/主机 服务 安装程序包 角色
192.168.16.133 k8s-master01.ilinux.io k8s-master01 docker、kubelet、kube-proxy、flannel、etcd、kube-apiserver、kube-controller-manager、kube-scheduler kubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubeadm、kubectl、docker master
192.168.16.134 k8s-node01.ilinux.io k8s-node01 docker、kubelet、kube-proxy、flannel、etcd kubelet(pod形式)、kube-proxy(pod形式)、flannel(pod形式)、kubectl、docker node01

二、修改主机名

hostnamectl set-hostname k8s-master01

在这里插入图片描述

三、配置host

sudo gedit /etc/hosts

#配置host如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.133 k8s-master01.ilinux.io k8s-master01 k8s-api.ilinux.io
192.168.16.134 k8s-node01.ilinux.io k8s-node01

在这里插入图片描述

四、时钟同步

systemctl start chronyd;systemctl enable chronyd
chronyc sources #看连接状态
chronyc tracking #看同步状态,时间差
chronyc -a makestep #立即同步时间

在这里插入图片描述

五、关闭相应服务

1.关闭防火墙

ubuntu是自动关闭防火墙的,查看命令如下:

sudo ufw status

在这里插入图片描述

2.关闭swap

sudo swapoff -a
sudo gedit /etc/fstab

在这里插入图片描述

3.配置NAT转发

modprobe br_netfilter

cat /etc/profile

cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

sudo sysctl -p /etc/sysctl.d/k8s.conf #执行同步参数

在这里插入图片描述

4.SSH密钥免密

sudo apt-get install openssh-server
ssh-keygen -t rsa

在这里插入图片描述
此时会在/home/ubuntu/.ssh目录下生成密钥对

ll .ssh

在这里插入图片描述
上传公钥到对应服务器

ssh-copy-id 192.168.16.133
ssh-copy-id 192.168.16.134

在这里插入图片描述

六、安装k8s

# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
# 添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl

在这里插入图片描述

七、初始化 master 节点

kubeadm init \
--apiserver-advertise-address=192.168.16.133 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16

这里介绍一下一些常用参数的含义:

  • –apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
  • –image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
  • –pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好
  • –kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
  • –ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用–ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。

在这里插入图片描述

八、Kubernetes的其他用法

1.集群使用的kubeconfig

在k8s-master01上执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

2.集群部署网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3.api高可用,增加控制平台(暂不操作)

kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43 --control-plane 

4.集群加入node节点

kubeadm join k8s-api.ilinux.io:6443 --token 5ppzww.4lv5mi6q59gu46mo --discovery-token-ca-cert-hash sha256:b5054b0ddbbc0f048f569fc732ce23ae021cf21bb1cee38c7a2dddd5a0f73a43 
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。