2022-03-02 day96 kubernetes安装

第1章 k8s安装部署
1.k8s安装方式
1)二进制安装 生产推荐
2)官方kubeadm安装 学习和实验
3)网友写的ansible二进制安装 非常牛叉
4)第三方安装工具比如rancher
5)云服务的k8s 比如阿里云的ACK

这里我们应该把学习使用k8s作为首要任务,所以先选择安装最简单的kubeadm来部署一套k8s集群。

2.kubeadm部署前规划
节点组件规划:
master master节点 API Server,controlle,scheduler,kube-proxy,kubelet,etcd
node1 node节点 Dokcer kubelet kube-proxy
node2 node节点 Dokcer kubelet kube-proxy

IP规划:
Node IP 10.0.0.0
Cluster IP 10.1.0.0
POD IP 10.2.0.0

设置节点IP
master-10 10.0.0.10 1核2G40G
node1-11 10.0.0.11 1核2G40G
node2-12 10.0.0.12 1核2G40G

删除所有主机的172网段

image.png
image.png
image.png

查看所有的主机IP地址
master主机


image.png

node1主机


image.png

node2主机


image.png

3.kubeadm部署前系统环境准备-所有主机都操作

设置k8s禁止使用swap

cat > /etc/sysconfig/kubelet<<EOF
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
EOF

free -h 查看swap分区为0就是正常的情况
master


image.png

node1


image.png

node2


image.png

设置内核参数--所有的主机都要操作

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

sysctl --system

master主机


image.png

node1主机


image.png

node2主机
image.png

加载IPVS模块

cat >/etc/sysconfig/modules/ipvs.modules << EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod +x /etc/sysconfig/modules/ipvs.modules
source /etc/sysconfig/modules/ipvs.modules
lsmod | grep -e ip_vs -e nf_conntrack_ipv
master主机


image.png

node1主机


image.png

node2主机


image.png

4.安装docker-所有机器都操作

配置阿里源

cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast

image.png
image.png
image.png
image.png
image.png
image.png

安装指定版本的Docker

yum list docker-ce --showduplicates
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15


image.png
image.png

配置docker镜像加速和cgroup驱动:

mkdir /etc/docker -p

cat > /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": ["https://ig2l319y.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"]
    }
EOF
image.png

启动Docker并设置开机自启动

systemctl enable docker && systemctl start docker

检查版本

docker -v

image.png

5.安装kubeadm

设置kubeadm的国内yum仓库-所有机器都操作

cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[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
image.png

安装kubeadm-所有机器都操作

k8s流程图

https://www.processon.com/view/link/621ee00fe0b34d5c4ef609c6
image.png
#yum list kubeadm --showduplicates
yum install -y kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3 ipvsadm
image.png

设置kubelet开机启动-所有机器都操作

systemctl enable kubelet


image.png

6.初始化master节点-只在master执行

kubeadm init \
--apiserver-advertise-address=10.0.0.10 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.3 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.2.0.0/16 \
--service-dns-domain=cluster.local \
--ignore-preflight-errors=Swap \
--ignore-preflight-errors=NumCPU

初始化时间比较久,等待一会


image.png
image.png

7.为kubectl准备kubeconfig-只在master执行

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

8.获取节点信息
kubectl get nodes


image.png

9.node节点接入集群-只在node节点执行

kubeadm join 10.0.0.10:6443 --token 304ii6.s62ckmi6s59fhxfu \
    --discovery-token-ca-cert-hash sha256:f3529f093f812382d33c9fd63d807eb2b3284ea893ba1aefc985815e078ef3fa
image.png

node执行完后,再执行kubectl get nodes

image.png

10.查看节点会发现有三个,但是显示NotReady
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady master 6m9s v1.19.3
node1 NotReady <none> 63s v1.19.3
node2 NotReady <none> 61s v1.19.3

image.png

11.部署Flannel网络插件-只在master节点上安装部署
git clone --depth 1 https://github.com/coreos/flannel.git

修改配置文件,将128行替换为PodIP,在189行新增加一行指定网卡名

cd flannel/Documentation/
vim kube-flannel.yml
128: "Network": "10.2.0.0/16",
189: - --iface=eth0
先在master主机安装git

image.png

克隆下载代码
git clone --depth 1 https://github.com/coreos/flannel.git

image.png

修改配置文件,将128行替换为PodIP,在189行新增加一行指定网卡名

cd flannel/Documentation/
vim kube-flannel.yml
128: "Network": "10.2.0.0/16",
189: - --iface=eth0

image.png
image.png
image.png

应用资源配置清单,告诉k8s安装容器等操作,类似于dockercompos

kubectl apply -f kube-flannel.yml

image.png

检查pod运行状态,等一会应该全是running

kubectl get pod -n kube-system


image.png

检查节点状态,应该都是Ready

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 12m v1.19.3
node1 Ready <none> 7m34s v1.19.3
node2 Ready <none> 7m32s v1.19.3

image.png

12.给node节点打标签
kubectl label nodes node1 node-role.kubernetes.io/node=
kubectl label nodes node2 node-role.kubernetes.io/node=

image.png

13.设置kube-proxy使用ipvs模式

修改第44行

kubectl edit cm kube-proxy -n kube-system
44 mode: "ipvs"

image.png
image.png

重启kube-proxy (相当于删除kube-proxy,k8s又自动起来了它就会重新读配置)

kubectl -n kube-system get pod|grep kube-proxy|awk '{print "kubectl -n kube-system delete pod "$1}'|bash

image.png

重新查看pod

kubectl -n kube-system get pod|grep kube-proxy

image.png

检查IPVS规则

ipvsadm -Ln

image.png

14.支持命令补全-只要master执行

yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
kubectl completion bash >/etc/bash_completion.d/kubectl
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容