CentOS7安装K8s(单机安装)图文教程

由于波波常年的开发中几乎没有什么大项目,尽管处理过一些高并发的业务,但是公司内部多台服务器设计架构的却很少。但是一入IT深似海,既然选择了这一行,那就坚持学习下去吧。

今天波波记录的笔记是Centos7单机安装k8s的记录。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

K8S中文文档:http://docs.kubernetes.org.cn/227.html

安装步骤:

一、准备工作

1、关闭swap,最好是安装CentOS的时候就不安装swap分区。

2、修改hosts,解析本机机器名。

  1. # vi /etc/hosts
  2. 122.114.197.231 k8s-single

3、关闭selinux防火墙。

  1. # setenforce 0
  2. # systemctl stop firewalld && systemctl disable firewalld
  1. # vi /etc/selinux/config
  2. 修改SELINUX=disabled
  3. 注意:不是修改SELINUXTYPE

4、安装并启动docker。

  1. # yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm
  2. # systemctl enable docker && systemctl restart docker

修改docker默认路径。

  1. # vi /etc/systemd/system/multi-user.target.wants/docker.service
  2. ExecStart=/usr/bin/dockerd --graph=/home/dockerdata --storage-driver=overlay
  3. 注意:/home/dockerdata 为新建立的目录
  4. # systemctl daemon-reload

5、开启forward。

  1. # iptables -P FORWARD ACCEPT

6、配置系统路由参数。

  1. # echo "
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. vm.swappiness=0
  5. " >> /etc/sysctl.conf
  6. # sysctl -p

7、加载ipvs相关内核模块。

  1. # modprobe ip_vs
  2. # modprobe ip_vs_rr
  3. # modprobe ip_vs_wrr
  4. # modprobe ip_vs_sh
  5. # modprobe nf_conntrack_ipv4
  6. # lsmod | grep ip_vs

二、安装相关组件

1、设置使用阿里镜像安装建立repo文件。

  1. # vi /etc/yum.repos.d/kubernetes.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  5. enabled=1
  6. gpgcheck=1
  7. repo_gpgcheck=1
  8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

2、安装 kubeadm, kubelet 和 kubectl。

  1. # yum install -y kubectl-1.12.10
  2. # yum install -y kubelet-1.12.10
  3. # yum install -y kubeadm-1.12.10
  4. # yum install -y ipvsadm

3、配置kubelet使用国内pause镜像,修改cgroup配置。

  1. # vi /etc/sysconfig/kubelet
  2. 添加配置如下:
  3. KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"

4、启动kubelet。

  1. # systemctl daemon-reload
  2. # systemctl enable kubelet && systemctl start kubelet

三、安装kubernetes

1、拉取镜像

  1. # docker pull mirrorgooglecontainers/kube-apiserver:v1.12.10
  2. # docker pull mirrorgooglecontainers/kube-proxy:v1.12.10
  3. # docker pull mirrorgooglecontainers/kube-controller-manager:v1.12.10
  4. # docker pull mirrorgooglecontainers/kube-scheduler:v1.12.10
  5. # docker pull mirrorgooglecontainers/etcd:3.2.24
  6. # docker pull kuberneter/coredns:1.2.2
  7. # docker pull mirrorgooglecontainers/pause:3.1
  8. 给镜像打标签
  9. # docker tag mirrorgooglecontainers/kube-apiserver:v1.12.10 k8s.gcr.io/kube-apiserver:v1.12.10
  10. # docker tag mirrorgooglecontainers/kube-controller-manager:v1.12.10 k8s.gcr.io/kube-controller-manager:v1.12.10
  11. # docker tag mirrorgooglecontainers/kube-scheduler:v1.12.10 k8s.gcr.io/kube-scheduler:v1.12.10
  12. # docker tag mirrorgooglecontainers/kube-proxy:v1.12.10 k8s.gcr.io/kube-proxy:v1.12.10
  13. # docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
  14. # docker tag mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24
  15. # docker tag kuberneter/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2

2、安装

  1. # kubeadm init --kubernetes-version=v1.12.10 --pod-network-cidr=122.114.197.231/16

3、配置环境变量

  1. # vi ~/.bash_profile
  2. 加入一行:export KUBECONFIG=/etc/kubernetes/admin.conf
  3. # source ~/.bash_profile

4、flannel安装。

使用kube-flannel.yml文件

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

5、验证安装

  1. # kubectl get pod -n kube-system
  2. # kubectl get node

6、设置master可以分配pod

master节点上一般不会再分配pod,以保障master的高效运行,如果仅有1台服务器,没有node的情况下,需要执行如下语句使master可以分配pod

  1. # kubectl taint nodes --all node-role.kubernetes.io/master-

到这一步Kubernetes安装已经完成了,我们可以进入Kubernetes的sh界面。

  1. # kubectl exec -it pod_name /bin/sh

其中pod_name为具体的pod名字,查pod名字的方法:

  1. # kubectl get pod

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!