2019安装k8s详细教程

2019安装k8s详细教程前言学习 k8s 的第一步肯定是安装进行实操 但是对于生产环境搭建一个高可用的 k8s 集群其实还是有点挑战难度的 特别是非专业运维开发人员 因为要涉及到的方面很多 默认配置都不能用于生产环境 性能调优 安全验证等等都是必不可少的 对于入门者来说的话 第一步安装其实有时候已经把一些人挡在了门外 自己也是费了一点功夫 才搭建了在本地能测试的 k8s 集群 用来学习 其中遇到了一些坑 所以记录一下 希望能帮助

前言

学习k8s的第一步肯定是安装进行实操。但是对于生产环境搭建一个高可用的k8s集群其实还是有点挑战难度的,特别是非专业运维开发人员。因为要涉及到的方面很多,默认配置都不能用于生产环境,性能调优,安全验证等等都是必不可少的。对于入门者来说的话,第一步安装其实有时候已经把一些人挡在了门外。自己也是费了一点功夫,才搭建了在本地能测试的k8s集群,用来学习。其中遇到了一些坑,所以记录一下,希望能帮助到和我遇到一样问题的朋友。

一.准备工作

1.1.环境准备

推荐自己搭建能否访问国外网络环境。详细教程大家自行网上搜索教程。假如遇到国外节点慢,同时又有国内服务器的,可以我的一遍文章(https://blog.csdn.net/xyz_dream/article/details/),使用国内中继国外节点,有些情况下能降低延时。

1.2.配置辅助软件客户端以及设置http, https代理,docker代理

pipy: https://pypi.org/project/shadowsocks/

自己连接搭建好的服务器。

 sslocal -c config.json -d start # 连接外面服务器 config.json内容大致如下 { 
    "server":"my_server_ip", "server_port":8388, "local_address": "127.0.0.1", "local_port":1080, "password":"mypassword", "timeout":300, "method":"aes-256-cfb", "fast_open": false } 

1.3.使用privoxy将socks5转为http和https代理

 # 安装privoxy yum install privoxy # vim /etc/privoyx/config 配置文件 加入内容 forward-socks5 / 127.0.0.1:1080 . # 启动 privoxy 代理 systemctl start privoxy 

1.4.配置系统http https以及docker的https代理

 vim .bash_profile 内容: # 定义alias alias open='export ALL_PROXY=127.0.0.1:8118 && export http_proxy=127.0.0.1:8188 && export https_proxy=127.0.0.1:8188' # alias alias unopen='unset ALL_PROXY http_proxy https_proxy' # 测试是否能访问google 能访问则会有内容输出 curl www.google.com # 配置docker的https代理 官网文档地址: https://docs.docker.com/config/daemon/systemd/ 1. mkdir -p /etc/systemd/system/docker.service.d 2. vim /etc/systemd/system/docker.service.d/https-proxy.conf: [Service] Environment="HTTPS_PROXY=https://proxy.example.com:443/" 3. systemctl daemon-reload 4. systemctl restart docker 

1.5.预先docker pull所需镜像

#预先把这些所需镜像pull下拉 假如能pull 则docker的https代理生效 docker pull k8s.gcr.io/kube-proxy:v1.13.4 docker pull k8s.gcr.io/kube-apiserver:v1.13.4 docker pull k8s.gcr.io/kube-scheduler:v1.13.4 docker pull k8s.gcr.io/kube-controller-manager:v1.13.4 docker pull k8s.gcr.io/kube-apiserver:v1.13.0 docker pull k8s.gcr.io/coredns:1.2.6 docker pull k8s.gcr.io/etcd:3.2.24 docker pull k8s.gcr.io/pause:3.1 

1.6.其他

 1.systemctl stop firewalld #暂时关闭防火墙 2.setenforce 0 # 禁用SELINUX 3. vim /etc/sysctl.d/k8s.conf 4. swapoff -a 添加内容: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 4.配置生效 modprobe br_netfilter sysctl -p /etc/sysctl.d/k8s.conf 5. 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 

二.正式安装

2.1.安装docker

 yum update -y yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum list docker-ce --showduplicates #查看docker版本 选择版本安装 我安装了 18.06.3-ce systemctl start docker systemctl enable docker 

2.2.安装k8s

源码安装k8s难度较大,要对k8s十分了解,关于证书颁发,权限,网络,存储等等。所以官方推荐使用kubeadm来初始化以及管理k8s集群。 master节点必须安装kubectl组件 node节点必须安装 kubelet组件。

 # 1.加入k8s源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF # 2.yum安装 yum makecache fast yum install -y kubelet kubeadm kubectl # 3.安装完毕 systemctl enable kubelet.service # 4.提示补全kubectl命令 yum install -y bash-completion locate bash_completion # 显示/usr/share/bash-completion/bash_completion source /usr/share/bash-completion/bash_completion source <(kubectl completion bash) 

2.3.初始化集群

 kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=127.0.0.1 若安装成功: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 安装flannel网络插件 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #提示: 一般会持续3-4分钟。 如果一直顺利 那么恭喜你90%完成。如果在kubectl config image pull卡顿 尝试kuectl config image ls查看所需安装的image是否已经pull正确。 若之前准备工作pull的镜像版本不正确, 需要重新kubectl cocnfig image pull即可。需要等待时间跟网速有关,一般快的话5-6分钟,慢的话在10几分钟左右。 只要你之前docker配置https代理正确以及你的上网配置正常,那么应该不会有什么问题。 

2.4.检查安装情况

 # 1.检查集群node是否处于Ready状态 kubectl get nodes 若处于Ready状态: 恭喜完成安装,可以开始玩一些k8s的Demo了! 若处于NotReady状态: 1.kubectl get pod --all-namespaces # 查看哪些pod未处于Running状态 2.查看未处于Running状态的pod的详细 kubectl describe pod 未出于Running状态的pod的名称 3. 处于安全考虑 默认master节点不能被调度,现在是测试环境可以让master被调度 kubectl taint nodes --all node-role.kubernetes.io/master- 具体问题具体网上继续查询相关错误信息。不过一般到这一步基本没问题,一般是pull镜像失败导致的。不过只要你 之前pull镜像能拉下来, 那么可能是时间问题,跟你的网络速度有关系,稍等几分钟可能就处于Ready状态了。 

mac安装遇到问题,假如kubernetes is starting: 可以查看日志

/Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload 

有兴趣的童鞋可以关注我的个人博客: https://mojun.me

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216125.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:29
下一篇 2026年3月18日 下午12:30


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号