kubernetes安装配置

准备

环境说明:centos7
https://www.jianshu.com/p/dbf4a343f56c

配置静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.18.160" # 设置的静态IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.18.2" # 网关地址
DNS1="192.168.18.2" # DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ba32ad97-e154-4a8b-a064-c98701419811"
DEVICE="ens33"
ONBOOT="yes"

systemctl restart network

关闭swap

  • 临时关闭 swapoff -a
  • 永久关闭
    1
    2
    vim /etc/fstab
    注释掉swap

关闭防火墙

1
systemctl disable firewalld.service

关闭selinux

1
2
3
vim /etc/sysconfig/selinux

SELINUX=disabled

设置主机名

所有要加入集群的节点主机名不能相同

1
2
3
4
5
# hostnamectl set-hostname k8s-master

# vim /etc/hosts

# reboot

centos7 安装docker

1
2
3
4
5
6
7
8
9
10
11
yum install -y yum-utils device-mapper-persistent-data lvm2

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

yum -y install docker-ce

# 启动服务
systemctl start docker

# 设置开机启动
systemctl enable docker

安装kubelet kubeadm kubectl

1
2
3
4
5
6
7
8
9
10
11
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet.service

开启forward

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# Docker从1.13版本开始调整了默认的防火墙规则
# 禁用了iptables filter表中FOWARD链
# 这样会引起Kubernetes集群中跨Node的Pod无法通信

iptables -P FORWARD ACCEPT

# 配置转发相关参数,否则可能会出错
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF

sysctl --system

安装k8s集群

master节点安装配置

  • 导出配置

    1
    kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml
  • 修改配置kubeadm.yml

    1
    2
    3
    advertiseAddress : master节点ip

    imageRepository: registry.aliyuncs.com/google_containers
  • 查看镜像资源
    kubeadm config images list –config kubeadm.yml

  • 拉取镜像

    1
    kubeadm config images pull --config kubeadm.yml
  • 创建单点 master 集群

    1
    2
    3
    4
    5
    6
    kubeadm init \
    --kubernetes-version v1.18.0 \
    --image-repository registry.aliyuncs.com/google_containers \
    --pod-network-cidr=10.96.0.0/12

    kubeadm init --config=kubeadm.yml
  • 如果初始化失败,请使用如下代码清除后重新初始化

    1
    2
    # kubeadm reset
    # rm -rf /var/lib/etcd/*
1
2
[root@k8s-master ~]# mkdir -p ~/.kube
[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf ~/.kube/config
  • 添加节点(在node节点执行)

    1
    kubeadm join xxx
  • k8s网络配置(calico)

    1
    # kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

安装失败的话找更新的calico试试

  • 查看calico组件安装情况(全部running才算完成)
    watch kubectl get pods --all-namespaces

命令

节点操作

  • 查看节点信息 kubectl get nodes -o wide
  • 查看节点状态 kubectl get node
  • 主机状态 kubectl get cs
  • 删除node kubectl delete node k8s-node1
  • 将k8s-node1节点设置为不可调度模式 kubectl cordon k8s-node1
  • 将当前运行在k8s-node1节点上的容器驱离 kubectl drain k8s-node1
  • 执行完维护后,将节点重新加入调度 kubectl uncordon k8s-node1

容器操作

  • 检查Master状态 kubectl cluster-info
  • 运行容器 kubectl run nginx --image=nginx --replicas=2 --port=80
  • 查看pods(运行容器的最小单元) kubectl get pods
  • 查看部署(k8s内部服务) kubectl get deployment
  • 查看对外暴露的服务 kubectl get services
  • 暴露服务端口 kubectl expose deployment nginx --port=80 --type=LoadBalancer
  • 删除已部署服务 kubectl delete deployment nginx
  • 删除已发布服务 kubectl delete service nginx
  • 删除pod kubectl delete pod

https://blog.csdn.net/xiaobao7865/article/details/107513957

带界面的安装工具