centos7.2 k8s安装--master篇

一、准备两台机器

master:10.8.206.161
node:10.8.206.162

二、设置/etc/hosts

10.8.206.161 master
10.8.206.162 minion

三、安全相关禁用

1.关闭防火墙
systemctl disable firewalld
systemctl stop firewalld

2.禁用SELINUX:

setenforce 0

vi /etc/selinux/config
SELINUX=disabled

3.禁用 Swap
没有禁用将会造成kubelet启动不起来
swapoff -a
vi /etc/fstab 将swap相关行注释掉

4.加载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 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

四、设置源仓库

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 

添加阿里云的Docker仓库:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
EOF

导入key

wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import rpm-package-key.gpg

五、安装docker-ce

yum install -y --setopt=obsoletes=0 docker-ce
systemctl start docker
systemctl enable docker #查看docker版本号

创建或修改/etc/docker/daemon.json:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

重启docker

systemctl restart docker
docker info | grep Cgroup

确认是不是systemd

六、用kubeadm 部署 kubernetes(master机器上执行)

安装kubelet kubeadm kubectl(注意查看版本号,在init的时候需要填写kubernetes-version版本号)

yum install -y kubelet kubeadm kubectl
kubeadm init \
--apiserver-advertise-address=10.8.206.161 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.1 \
--pod-network-cidr=10.244.0.0/16

注意看控制台日志:

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 111.111.111.111:6443 --token cmu81v.6yh3szktbo1vzfap \
    --discovery-token-ca-cert-hash sha256:fb9f2d6bd97b9b84fc90b2bac544b4eaa4162e23c6837c55a607b859a2552819
#普通用户要使用k8s 需要执行下面操作
  
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


#如果是root 可以直接执行
export KUBECONFIG=/etc/kubernetes/admin.conf

# 以上两个二选一即可,这里我是直接用的root 所以直接执行
export KUBECONFIG=/etc/kubernetes/admin.conf

再次执行systemctl status kubelet.service,服务正常了

查看每个组件是否正常:kubectl get cs

[root@hn-chenzhousjzx-sx-bkl-0001 ~]# kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok                  
controller-manager   Healthy   ok                  
etcd-0               Healthy   {"health":"true"}

查看node状态

[root@hn-chenzhousjzx-sx-bkl-0001 ~]# kubectl get node
NAME                                    STATUS     ROLES    AGE     VERSION
hn-chenzhousjzx-sx-bkl-0001.novalocal   NotReady   master   6m36s   v1.15.1

安装port Network( flannel ) :: k8s cluster 工作 必须安装pod网络,否则pod之间无法通信,k8s支持多种方案,这里选择flannel

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

检查pod状态,需要确保当前Pod 都是 running

kubectl get pod --all-namespaces -o wide

再次查看node状态; pod状态变为 Ready

[root@hn-chenzhousjzx-sx-bkl-0001 ~]# kubectl get nodes
NAME                                    STATUS   ROLES    AGE     VERSION
hn-chenzhousjzx-sx-bkl-0001.novalocal   Ready    master   9m18s   v1.15.1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。