K8s学习一(配置)

k8s学习

  • 学习视频,b站k8s学习
  • 官方:https://kubernetes.io/
  • 中文文档:https://kubernetes.io/zh-cn/docs/home/

k8s配置

我是在Ubuntu上学习的

初始操作

# 关闭防火墙
sudo ufw disable

# 关闭selinux,Ubuntu默认不安装
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

# 关闭swap
sudo swapoff -a  # 临时
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab  # 永久

# 关闭完swap后,一定要重启一下虚拟机!!!
# 根据规划设置主机名
hostnamectl set-hostname <hostname>

# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.2.135 k8s-master
192.168.2.136 k8s-node1
192.168.2.137 k8s-node2
EOF


# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system  # 生效


# 时间同步
sudo apt update
sudo apt install ntpdate -y
sudo ntpdate time.windows.com

所有节点安装基础软件

#安装docker
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#添加阿里云,这里进入阿里云找到docker会有命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://y4dtupgk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker



#安装kubectl,kubeadm,kubelet

sudo apt install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00

systemctl enable kubelet

# 配置关闭 Docker 的 cgroups,修改 /etc/docker/daemon.json,加入以下内容
"exec-opts": ["native.cgroupdriver=systemd"]

# 重启 docker
systemctl daemon-reload
systemctl restart docker

对集群进行初始化及后续操作

  • 初始化集群
kubeadm init \
      --apiserver-advertise-address=192.168.2.135 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.23.6 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16
      <!--  --apiserver-advertise-address=192.168.2.135 \这里是填入自己的ip-->
  • 初始化后得到了kubeadm join,如我这里的:
kubeadm join 192.168.2.135:6443 --token jyey31.jecivyoxbqec5gwr \
        --discovery-token-ca-cert-hash sha256:f4c063fa4c1b61b052d385382e02f9152514b82c6c1c36ed340315fae9ac1602 
  • 复制到其他虚拟机上执行,即可加入集群,如下:
    在这里插入图片描述

  • 这里是在node1节点上执行

  • 然后执行kubectl get nodes就可以看出来nodes

在这里插入图片描述

  • 但是可以看出来是notready,应该就是网络还没有配置好
  • 执行kubectl get componentstatus可以看见状态都好

在这里插入图片描述

  • 如果运行这句kubectl get pods -n kube-system 出现下面的0/1情况,则一般是网络问题
    在这里插入图片描述

  • 下面配置calico网络,下载calico.yaml 文件,可以直接去这个网站https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml下了之后粘进这个yml文件。

  • 然后执行kubectl apply -f calico.yaml CALICO_IPV4POOL_CIDR

  • 然后执行kubectl get po -n kube-system,查看 Kubernetes 集群中 kube-system 命名空间下的 Pod 列表:
    在这里插入图片描述

  • 执行kubectl describe po calico-kube-controllers-cd8566cf-msxhv -n kube-system查看该pod的信息

  • 配置好网络后再次查看节点会发现已经ready
    在这里插入图片描述

  • 然后进行部署测试,以nginx服务为例

create deployment nginx --image=nginx
//创建服务
expose deployment nginx --port=80 --type=NodePort
//暴露端口号
kubectl get pod,svc
//查看服务
  • 然后可以在虚拟机里curl一下,也可以去网站搜索,发现每个ip都可以有这个服务,如下
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值