前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你搭建k8s测试环境

手把手教你搭建k8s测试环境

作者头像
用户5766185
发布2019-07-08 14:55:02
3.3K0
发布2019-07-08 14:55:02
举报
文章被收录于专栏:运维架构之路

想学习k8s,但是又不会搭环境?陈老师教你简单搭建k8s测试/学习环境!

设置hosts文件以及主机名

代码语言:javascript
复制
192.168.56.210  k8s-master
192.168.56.220  k8s-node01
192.168.56.230  k8s-node02
hostnamectl  set-hostname k8s-master  # 依次设置好主机名

配置yum源

配置阿里云的软件源链接:https://opsx.alibaba.com/mirror

代码语言:javascript
复制
[root@k8s-master yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #配置dokcer源
[root@k8s-master ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo  #配置kubernetes源
> [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

关闭selinux

代码语言:javascript
复制
setenforce 0
# sed -i  's@^\(SELINUX=\).*@\1disabled@' /etc/selinux/config

关闭防火墙

代码语言:javascript
复制
systemctl  stop firewalld.service
systemctl  disable firewalld.service

下载相关软件

代码语言:javascript
复制
[root@k8s-master yum.repos.d]# yum repolist #查看可用源
[root@k8s-master yum.repos.d]# yum install -y docker-ce kubelet kubeadm kubectl

配置镜像加速:

代码语言:javascript
复制
[root@k8s-master ~]# mkdir /etc/docker
[root@k8s-master ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

docker 1.13版本后会自动设置iptables 规则的forward 为drop 需要改成ACCEPT

代码语言:javascript
复制
[root@k8s-master ~]# cat /usr/lib/systemd/system/docker.service
[Service]

Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExexStartPost=/usr/sbin/iptables -P FORWARD ACCEPT  # 这里加一行

启动docker

代码语言:javascript
复制
[root@k8s-master ~]# systemctl  daemon-reload 
[root@k8s-master ~]# systemctl start docker
[root@k8s-master ~]# systemctl enable docker

关闭swap

代码语言:javascript
复制
[root@k8s-master ~]# vim /etc/sysconfig/kubelet   #修改kubelet禁止提示swap警告,最好关闭swap
KUBELET_EXTRA_ARGS="--fail-swap-on=false" #如果配置了swap不然提示出错信息
更改kubelet配置,不提示swap警告信息,最好关闭swap
[root@k8s-master ~]# swapoff -a  #关闭swap
# 修改系统文件是的机器bridge模式开启
[root@k8s-master ~]#echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

设置kubelet开机自起

代码语言:javascript
复制
[root@k8s-master ~]#systemctl  enable  kubelet.service 

---------------------------------

以上可以在三台主机上都执行

----------------------------------

# 下面命令只需要在master上执行就可以了

初始化集群

代码语言:javascript
复制
[root@k8s-master ~]#kubeadm init  --kubernetes-version=v1.15.0  --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap --apiserver-advertise-address=0.0.0.0 --image-repository registry.aliyuncs.com/google_containers
[root@k8s-master ~]#mkdir -p $HOME/.kube
[root@k8s-master ~]#sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]#sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 在node上执行 node节点加入集群,注意:每个人的token是不一样,初始化集群后,命令结果会显示加入集群的命令,直接复制即可

代码语言:javascript
复制
[root@k8s-node~]#kubeadm join 192.168.56.210:6443  --ignore-preflight-errors=Swap  --token 1n1j1d.21fchn5z1nwh2j16 \
    --discovery-token-ca-cert-hash sha256:ce6a7755de5fcb23d1c54b07b82c392a64cbf9438efe6b994813e10a788ea247

token 默认24小时过期,过期后可执行先得命令重新加入:

代码语言:javascript
复制
[root@k8s-master ~]# kubeadm  token create  --print-join-command
kubeadm join 192.168.56.210:6443 --token jjquvs.9hd22iqm33eqb77g     --discovery-token-ca-cert-hash sha256:ce6a7755de5fcb23d1c54b07b82c392a64cbf9438efe6b994813e10a788ea247

配置flannel网络 #在所有主机上执行

代码语言:javascript
复制
[root@k8s-master ~]#kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

稍等片刻后检查

[root@k8s-master ~]# kubectl get po -o wide --all-namespaces

[root@k8s-master ~]# kubectl get node

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维架构之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档