linux安装k8s
安装docker、kubeadm,kubelet(master,node均需配置)(如果安装其它版本,可根据Getting Started with Kubernetes | Rancher Quick Start,中对应的版本来选择,并且可以安装Rancher的k8s视图管理)
·
一:环境准备(master,node均需配置)
- 关闭防火墙(开启防火墙,需开放端口 80,443,还有pod服务的端口)
-
systemctl stop firewalld 临时关闭防火墙 systemctl disable firewalld 禁止开机启动防火墙
- 防火墙问题:linu解决防火墙问题_小贞-10086的博客-CSDN博客
-
- 关闭 selinux
-
sed -i 's/enforcing/disabled/' /etc/selinux/config
-
- 禁掉所有交换分区
-
[root@k8s-master ~]# swapoff -a 禁掉所有交换分区 [root@k8s-master ~]# vim /etc/fstab 注释掉,不然重启swap分区又会被激活
-
- 在 master 添加 hosts,根据你们自己的ip进行修改
-
cat >> /etc/hosts << EOF 192.168.87.128 k8s-master 192.168.87.127 k8s-node1 192.168.87.126 k8s-node2 EOF
-
- 将桥接的 IPv4 流量传递到 iptables 的链
-
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system # 生效
-
- 时间同步
-
yum install ntpdate -y ntpdate time.windows.com
-
二:安装docker、kubeadm,kubelet(master,node均需配置)(如果安装其它版本,可根据Getting Started with Kubernetes | Rancher Quick Start,中对应的版本来选择,并且可以安装Rancher的k8s视图管理)
- 安装docker
-
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version
cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://30nyszb4.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"], 将cgroups改成systemd机制 "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF systemctl restart docker 重启docker服务 docker info 查看配置
-
- 添加 k8s的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
-
- 安装 kubeadm, kubelet 和 kubectl
-
yum install -y kubelet-1.17.3 kubectl-1.17.3 kubeadm-1.17.3 (指定兼容的版本---依据你的docker版本来配置,若安装Rancher,则依据Rancher版本来配置) systemctl enable kubelet
-
三:部署k8s master
- 初始化master节点(记得将返回的 kubeadm join 192.168.87.128:6443 --token ... 复制)
-
kubeadm init \ --apiserver-advertise-address=自己master节点的ip \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.17.3(自己想要安装的版本,必须和上面安装的kubectl版本是一致的) \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 如果初始化话失败,则 kubectl reset 重置kubectl 找到失败原因后,再初始化
-
- 使用 kubectl 工具
-
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
- 查看下master节点是否启动
-
kubectl get nodes 查看是否启动 如果报The connection to the server localhost:8080 was refused - did you specify the right host or port? 则配置环境变量 export KUBECONFIG=/etc/kubernetes/kubelet.conf
-
-
安装pod网络插件
-
kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/kube-flannel.yml 或者 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 如果不行,就 wget kube-flannel.yml 再 kubectl apply -f kube-flannel.yml
-
四:子节点(node)加入集群
-
执行以下指令,加入集群 kubeadm join 192.168.87.128:6443 --token pbcvxr.jmkts88d2v2jmdj2 --discovery-token-ca-cert-hash sha256:9fc32c0acd3c7fd220b200380da2aef356cd0095750cecc6f2ab38507f2cd4f2 初始化主(master)节点时返回的kubeadm join 192.168.87.128:6443 --token ... 如果忘记复制保存,则在master主节点中执行: kubeadm token create --print-join-command 查看加入集群的指令
五:测试k8s集群
- 在master主节点中添加pod服务,验证是否运行正常
- kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
- kubectl create deployment nginx --image=nginx
六:安裝Rancher k8s通过视图方式部署的工具
- 找到k8s和docker版本匹配的Rancher版本
- 执行 docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v版本号
七:查看node服务使用情况
-
kubectl top node 如果报错: Error from server (NotFound): the server could not find the requested resource (get services http:heapster:) 问题分析: Heapster是容器集群监控和性能分析工具,HPA、Dashborad、Kubectl top都依赖于heapster收集的数据。 但是Heapster从kubernetes 1.8以后已经被遗弃了… 被metrics-server所替代…那么就部署一下Heapster吧 解决问题,执行: kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/heapster-clusterrole.yaml kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/heapster.yaml
八:指令学习,可以去k8s入门教程 - 吕林光 - 博客园
更多推荐
已为社区贡献1条内容
所有评论(0)