专栏首页程序猿 Damon 带你进阶全栈基础设施服务k8s快速部署之HA篇

基础设施服务k8s快速部署之HA篇

实战部署 Kubernetes,助力应用开发人员升级成为 DevOps。成就你全栈工程师之路,让你的薪资倍增。

环境:

Ubuntu 16.04

gpu驱动 418.56 +

docker 18.06

k8s 1.14.9 +

go 1.12 +

1. 设置环境

su模式下:

首先备份一下源配置:cp /etc/apt/sources.list /etc/apt/sources.list.cp

编辑,替换为阿里源:vim /etc/apt/sources.list

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

更新源: apt-get update

自动修复安装出现broken的package: apt --fix-broken install

#升级: apt-get upgrade(对于gpu机器可不执行,否则可能升级gpu驱动导致问题)

关闭防火墙: ufw disable

安装selinux:

apt install selinux-utils

selinux防火墙配置临时有效:

setenforce 0

永久生效:

vim /etc/selinux/conifg
SELINUX=disabled

设置网络:

tee /etc/sysctl.d/k8s.conf <<-'EOF'
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

#
modprobe br_netfilter

查看ipv4与v6配置是否生效:

sysctl --system

配置iptables:

iptables -P FORWARD ACCEPT
vim /etc/rc.local
/usr/sbin/iptables -P FORWARD ACCEPT

临时关闭swap分区:

swapoff -a (重启失效)

永久关闭swap分区:

sed -i 's/.*swap.*/#&/' /etc/fstab

2. 安装docker

command:

apt-get install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update

apt-get purge docker-ce docker docker-engine docker.io  && rm -rf /var/lib/docker

apt-get autoremove docker-ce docker docker-engine docker.io

apt-get install -y docker-ce=18.06.3~ce~3-0~ubuntu

启动docker并设置开机自重启:

systemctl enable docker && systemctl start docker

Docker配置:

含 GPU
vim /etc/docker/daemon.json
{
 "log-driver": "json-file",
 "log-opts": {
   "max-size": "100m",
   "max-file": "10"
 },
 "insecure-registries": ["http://k8s.gcr.io"],
 "data-root": "",
 "default-runtime": "nvidia",
 "runtimes": {
     "nvidia": {
         "path": "/usr/bin/nvidia-container-runtime",
         "runtimeArgs": []
     }
 }
}

or 不含 GPU:
{
"registry-mirrors":[
"https://registry.docker-cn.com"
],
"storage-driver":"overlay2",
"log-driver":"json-file",
"log-opts":{
"max-size":"100m"
},
"exec-opts":[
"native.cgroupdriver=systemd"
],
"insecure-registries":["http://k8s.gcr.io"],
"live-restore":true
}

重启服务并设置开机自动重启:

systemctl daemon-reload && systemctl restart docker && docker info

3. 安装k8s(1.14.9)

拉取镜像前的设置:

apt-get update && apt-get install -y apt-transport-https curl

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF

更新:

apt-get update

apt-get purge kubelet=1.14.9-00 kubeadm=1.14.9-00 kubectl=1.14.9-00

apt-get autoremove kubelet=1.14.9-00 kubeadm=1.14.9-00 kubectl=1.14.9-00

apt-get install -y kubelet=1.14.9-00 kubeadm=1.14.9-00 kubectl=1.14.9-00

apt-mark hold kubelet=1.14.9-00 kubeadm=1.14.9-00 kubectl=1.14.9-00

启动服务并设置开机自动重启:

systemctl enable kubelet && sudo systemctl start kubelet

安装k8s相关镜像,从国内源镜像地址下载:

本文分享自微信公众号 - 程序猿Damon(Damon4X),作者:小码哥Damon

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker常用命令,你都会了吗

    关于 docker 的安装,在 基础设施服务k8s快速部署之HA篇 一文中,你可以快速安装docker的各种版本。

    程序猿Damon
  • Oauth2的授权码模式《上》

    在上一篇 Oauth2 的认证实战-HA 篇 中,我们说过 Oauth2 的高可用方案,但其实其场景仅仅在于密码模式下,如果是授权码模式下,将有点瑕疵,甚至需要...

    程序猿Damon
  • 如何利用k8s拉取私有仓库镜像

    最近实战时,发现一个很奇怪的问题,在通过 k8s 创建 pod,拉取镜像时,总是显示如下信息:

    程序猿Damon
  • Docker 安装

    用户1180017
  • Docker学习笔记之二:web开发和Tomcat部署

    本期实践的主要目标是开发一个简单的web应用,打包部署到Docker的tomcat容器中去; 第一期为了快速上手,获取docker是从国内的daocloud...

    程序员欣宸
  • 『中级篇』Docker 水平扩展和负载均衡(40)

    PS:Docker的scale 可以扩展,也可以所有,他们自动来控制的。web=10 可以改成5 其中的6,7,8,9,10就被删除了。

    IT故事会
  • MySQL 编码和解码

    背景:目前正在进行业务重构,需要对使用MySQL的业务库表进行重新设计,在迁移时,遇到了中文字符乱码问题(源库表的默认编码是LATIN1,新库表的默认编码为UT...

    skylerxu
  • 绝对不能错过的7篇MySQL必读文章

    MySQL专题那些事儿 马哥Linux运维公众号持续推出有质感的技术文章,志在成为大家手中的运维技术百宝箱,为了方便大家温习,小编特回顾了近一段时间比较受欢迎的...

    小小科
  • 如何理解Docker镜像分层?且听百度高级研发工程师细细道来

    所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等。

    本人秃顶程序员
  • Docker化你的SpringBoot项目

    容器和微服务可谓是一对好朋(ji)友(you),因为微服务架构下的业务服务通常都基于SpringBoot进行开发,上线部署服务的时候通过容器来进行部署,能够简化...

    端碗吹水

扫码关注云+社区

领取腾讯云代金券