Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. 容器/k8s
  3. 正文

kubeadm快速部署k8s 1.16.2

2019年10月29日 6684点热度 2人点赞 0条评论

由于之前全手工安装的是1.10.6版本. 最近需要测试nginx的CRD,但是此CRD至少要v1.11以上版本。本着测试环境多一事不如少一事的原则。。。决定用kubeadm来个快速全新安装一套。

环境准备

1master,2nodes

172.16.10.210 k8s-master-v1-16.lab.f5se.io
172.16.10.211 k8s-node1-v1-16.lab.f5se.io
172.16.10.212 k8s-node2-v1-16.lab.f5se.io

所有节点准备工作

  • 替换yum repo为阿里镜像,k8s的repo也改成阿里云,这样安装起来能快点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 
cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 
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
EOF
 
yum clean all
yum makecache
yum -y update
  • 关firewlld,selinux,swapoff
1
2
3
4
5
6
7
8
9
systemctl disable firewalld
systemctl stop firewalld
 
setenforce 0
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
 
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
  • 调整系统参数
1
2
3
4
5
cat <  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
  • 增加hosts文件
1
2
3
172.16.10.210 k8s-master-v1-16.lab.f5se.io
172.16.10.211 k8s-node1-v1-16.lab.f5se.io
172.16.10.212 k8s-node2-v1-16.lab.f5se.io
  • 安装docker
1
2
3
4
5
6
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
yum install -y docker-ce-18.09.9-3.el7
systemctl enable docker
systemctl start docker
  • 配置docker启动daemon.json文件

注:kubeadm在安装的时候会预先检测系统是否是使用systemd作为cgroup的驱动,因此需要修改daemon.json。且由于我的系统存储驱动不是overlay2,而是 devicemapper ,所以不能完全参考官方 https://kubernetes.io/docs/setup/production-environment/container-runtimes/

修改完毕后,重新启动docker :systemctl restart docker

1
2
3
4
5
6
7
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
  • 安装kubeadm,以及kubelet工具
1
yum install -y kubeadm-1.16.2 kubelet-1.16.2
  • 预下载被QIANG的镜像,否则安装会无法成功

master节点运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
 
## 使用如下脚本下载国内镜像,并修改tag为google的tag
set -e
 
KUBE_VERSION=v1.16.2
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2
 
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
 
images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})
 
for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
set -e
 
FLANNEL_VERSION=v0.11.0
 
# 在这里修改源
QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos
 
images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)
 
for imageName in ${images[@]} ; do
  docker pull $QINIU_URL/$imageName
  docker tag  $QINIU_URL/$imageName $QUAY_URL/$imageName
  docker rmi $QINIU_URL/$imageName
done

node节点运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
set -e
 
KUBE_VERSION=v1.16.2
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2
 
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
 
images=(kube-proxy:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
coredns:${CORE_DNS_VERSION})
 
for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
set -e
 
FLANNEL_VERSION=v0.11.0
 
QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos
 
images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)
 
for imageName in ${images[@]} ; do
  docker pull $QINIU_URL/$imageName
  docker tag  $QINIU_URL/$imageName $QUAY_URL/$imageName
  docker rmi $QINIU_URL/$imageName
done
 

主节点正式安装

如果以下命令执行过程中有错,可ctrl-c终止,让后执行kubeadm reset来重新初始化后再次执行

1
kubeadm init  --apiserver-advertise-address 172.16.10.210  --kubernetes-version=v1.16.2  --pod-network-cidr=10.244.0.0/16

如无异常,安装完毕后,系统会提示类似如下信息

1
2
3
4
5
6
7
8
9
10
11
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
   https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 172.16.10.210:6443 --token dov90j.fzvwtb2o353tsy2p \
     --discovery-token-ca-cert-hash sha256:2faa5272facb2655af0f115e45fddc5bc7e097997bf0b0e8b4c73bf2d5680e7b

参考以上提示执行相关kube config文件处理,以便可以执行kubectl命令。并安装一种网络组件,测试中安装flannel

1
2
3
4
5
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
 
kubectl create -f kube-flannel.yml
 
kubectl get pod --all-namespaces 确认pod运行

node节点安装

node节点运行以下类似命令,具体命令从master安装完毕后的输出中拷贝

1
2
kubeadm join 172.16.10.210:6443 --token dov90j.fzvwtb2o353tsy2p \
    --discovery-token-ca-cert-hash sha256:2faa5272facb2655af0f115e45fddc5bc7e097997bf0b0e8b4c73bf2d5680e7b

确认各节点及pod运行正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@k8s-master-v1-16 ~]# kubectl get node
NAME                           STATUS   ROLES    AGE    VERSION
k8s-master-v1-16.lab.f5se.io   Ready    master   171m   v1.16.2
k8s-node1-v1-16.lab.f5se.io    Ready       127m   v1.16.2
k8s-node2-v1-16.lab.f5se.io    Ready       45m    v1.16.2
[root@k8s-master-v1-16 ~]# kubectl get pod --all-namespaces
NAMESPACE     NAME                                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-5644d7b6d9-fgtdl                               1/1     Running   0          171m
kube-system   coredns-5644d7b6d9-xj5d4                               1/1     Running   0          171m
kube-system   etcd-k8s-master-v1-16.lab.f5se.io                      1/1     Running   0          170m
kube-system   kube-apiserver-k8s-master-v1-16.lab.f5se.io            1/1     Running   0          170m
kube-system   kube-controller-manager-k8s-master-v1-16.lab.f5se.io   1/1     Running   0          170m
kube-system   kube-flannel-ds-amd64-fbcw5                            1/1     Running   0          139m
kube-system   kube-flannel-ds-amd64-mzpmb                            1/1     Running   0          45m
kube-system   kube-flannel-ds-amd64-tdmk6                            1/1     Running   0          127m
kube-system   kube-proxy-7svd7                                       1/1     Running   0          127m
kube-system   kube-proxy-cs2fb                                       1/1     Running   0          45m
kube-system   kube-proxy-jtnrn                                       1/1     Running   0          171m
kube-system   kube-scheduler-k8s-master-v1-16.lab.f5se.io            1/1     Running   0          170m
 

 

相关文章

  • F5 CC 租户配置隔离配置方法
  • k8s利用F5实现租户流量隔离?
  • [转]Calico, Flannel, Weave and Docker Overlay Network
  • F5 k8s解决方案(1)- 基于 flannel vxlan模型的K8S解决方案
  • DOCKER容器跨宿主机通信方法(4):Flannel-Vxlan
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 1.16.2 flannel k8s kubeadm安装
最后更新:2020年08月13日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

页面AI聊天助手
文章目录
  • 环境准备
  • 所有节点准备工作
  • 主节点正式安装
  • node节点安装
  • 确认各节点及pod运行正常

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    irule gtm openstack istio network F5 api neutron flannel docker bigip nginx envoy k8s DNS
    最近评论
    汤姆 发布于 8 个月前(09月10日) 嗨,楼主,里面的json怎么下载啊,怎么收费啊?
    汤姆 发布于 8 个月前(09月09日) 大佬,kib的页面可以分享下吗?谢谢
    zhangsha 发布于 1 年前(05月12日) 资料发给我下,谢谢纳米同志!!!!lyx895@qq.com
    李成才 发布于 1 年前(01月02日) 麻烦了,谢谢大佬
    纳米 发布于 1 年前(01月02日) 你好。是的,因为以前下载系统插件在一次升级后将所有的下载生成信息全弄丢了。所以不少文件无法下载。DN...
    浏览次数
    • Downloads - 183,648 views
    • 联系我 - 118,966 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 116,199 views
    • Github - 103,543 views
    • F5常见log日志解释 - 79,720 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 74,503 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 74,320 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 67,770 views
    • 关于本站 - 60,796 views
    • 这篇文档您是否感兴趣 - 55,461 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号