K8S笔记:Kubernetes安装部署(CentOS7)

目录

文章目录

    • 目录
        • 一、使用minikube
          • 启动minikube的LoadBalancer支持
          • 指定minikube自带docker的docker0网桥网段
          • minikube使用本地image
        • 二、使用kubeadm手工安装
          • 1、安装前准备
          • 2、允许iptables检查桥接流量
          • 3、安装kubelet kubeadm kubectl
          • 4、kubelet使用cgroup驱动
          • 5、确认主机名/域名可被访问
          • 6、关闭Swap或忽略Swap错误
          • 7、使用 kubeadm 创建集群
          • 8、安装Pod网络附加组件
          • 9、加入节点
        • 三、访问 API
          • 方式1、服务账号令牌
          • 常用查询接口
        • 四、安装Haproxy Ingress
          • 方法一、用helm安装
          • 方法二、用kubectl安装
        • 五、配置https证书
          • 1、创建秘钥
          • 2、制作自签名证书
          • 3、生成Secret资源
            • 方法一、编辑配置文件arksea-devops-secret.yaml
            • 方法二、用命令行生成
          • 4、查看生成的Secret对象
          • 5、在Ingress对象中声明TLS

一、使用minikube
启动minikube的LoadBalancer支持
    minikube tunnel
  • 错误1:The “docker” driver should not be used with root privileges.
    解决:将用户加入docker组

      useradd minikube
      usermod -aG docker minikube
    
指定minikube自带docker的docker0网桥网段
minikube ssh
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{ 
    "bip":"172.17.100.1/24"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

可以运行一个例子看看是否生效

kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

minikube使用本地image
  • 方法1
    用minikube自带docker环境进行image创建

      eval $(minikube docker-env)
    
  • 方法二
    将本地image加入minikube的cahce

     minikube cache add 
    
二、使用kubeadm手工安装

官网文档

1、安装前准备
  • 确认安装的kubenetes支持的最高版本的docker

当使用不支持的版本时,运行kubeadm init会出错:

    [arksea@vm-centos-1 sysconfig]$ sudo kubeadm init --ignore-preflight-errors=SystemVerification
    [init] Using Kubernetes version: v1.20.2
    [preflight] Running pre-flight checks
            [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.3. Latest validated version: 19.03
    error execution phase preflight: [preflight] Some fatal errors occurred:

查询可以使用docker版本

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64               3:20.10.3-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.3-3.el8                 @docker-ce-stable
docker-ce.x86_64               3:20.10.2-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.1-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.0-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:19.03.15-3.el8                docker-ce-stable 
docker-ce.x86_64               3:19.03.14-3.el8                docker-ce-stable 
docker-ce.x86_64               3:19.03.13-3.el8                docker-ce-stable 
已安装的软件包
上次元数据过期检查:0:07:18 前,执行于 2021年02月07日 星期日 17时00分22秒。
可安装的软件包

安装指定版本的docker

$ sudo yum install docker-ce-19.03.15-3.el8 docker-ce-cli-19.03.15-3.el8 containerd.io
  • 修改Cgroup驱动
    systemd使用的cgroupfs驱动,如果容器也使用cgroupfs,则节点将有两个不同cgroup管理器,这可能会让节点在资源压力下变得不稳定,所以让容器直接使用systemd。注意不要在节点安装加入集群后修改。(官方文档)
    编辑 /etc/docker/daemon.json (不存在就新建),配置运行参数:

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

    需要重启Docker,重启后可查看docker info确认修改

      # systemctl restart docker
      # docker info
    
2、允许iptables检查桥接流量
cat <
3、安装kubelet kubeadm kubectl
cat <

你可能感兴趣的:(devops,kubernetes,k8s,运维)